home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 9 / Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO / 040a / 1st_110b.zip / ADVANCED.DOC < prev    next >
Text File  |  1993-05-15  |  178KB  |  4,866 lines

  1.  
  2.  
  3.  
  4.  
  5.       ┌──────────────────────────────────────────────────────────────────┐
  6.       │                                                                  │
  7.       │                                                                  │
  8.       │      ┌────────────────────────────────────────────────────┐      │
  9.       │      │                                                    │      │
  10.       │      │                                                    │      │
  11.       │      │                                                    │      │
  12.       │      │                                                    │      │
  13.       │      │                                                    │      │
  14.       │      │                                                    │      │
  15.       │      │                                                    │      │
  16.       │      │                                                    │      │
  17.       │      │                                                    │      │
  18.       │      │                                                    │      │
  19.       │      │                                                    │      │
  20.       │      │                                                    │      │
  21.       │      │                                                    │      │
  22.       │      │                                                    │      │
  23.       │      │                 ▄██                                │      │
  24.       │      │                  ██ ▄▄▄▄▄▄ ▄▄▄▄▄▄                  │      │
  25.       │      │                  ██ ██▀▀▀▀ ▀▀██▀▀                  │      │
  26.       │      │                  ██ ▀▀▀▀██   ██                    │      │
  27.       │      │                  ██ ██████   ██                    │      │
  28.       │      │                                                    │      │
  29.       │      │                 1stReader for DOS                  │      │
  30.       │      │             The Advanced User's Guide              │      │
  31.       │      │                                                    │      │
  32.       │      │                                                    │      │
  33.       │      │                    Entire work                     │      │
  34.       │      │            Copyright 1993 by Mark Herring          │      │
  35.       │      │                All Rights Reserved                 │      │
  36.       │      │                                                    │      │
  37.       │      │                                                    │      │
  38.       │      │                                                    │      │
  39.       │      │                                                    │      │
  40.       │      │                                                    │      │
  41.       │      │                                                    │      │
  42.       │      │                                                    │      │
  43.       │      │                                                    │      │
  44.       │      │                                                    │      │
  45.       │      │                                                    │      │
  46.       │      │                                                    │      │
  47.       │      │                                                    │      │
  48.       │      │                                                    │      │
  49.       │      │                     Sparkware                      │      │
  50.       │      │                Post Office Box 386                 │      │
  51.       │      │           Hendersonville, Tennessee   37077        │      │
  52.       │      │                                                    │      │
  53.       │      │                                                    │      │
  54.       │      │                                                    │      │
  55.       │      └────────────────────────────────────────────────────┘      │
  56.       │                                                                  │
  57.       │                                                                  │
  58.       └──────────────────────────────────────────────────────────────────┘
  59.  
  60.  
  61.  
  62.  
  63.                                     NOTICE
  64.      
  65.          EXCEPT FOR THE EXPRESS WARRANTY SET FORTH ABOVE, SPARKWARE
  66.          GRANTS NO OTHER WARRANTIES, EXPRESSED OR IMPLIED, BY STATUE
  67.          OR OTHERWISE, REGARDING THE DISK, PROGRAMS AND RELATED
  68.          MATERIALS, THEIR FITNESS FOR ANY PURPOSE, THEIR QUALITY,
  69.          THEIR MERCHANTABILITY, OR OTHERWISE.
  70.      
  71.          THE LIABILITY OF SPARKWARE UNDER THE WARRANTY SET FORTH
  72.          ABOVE SHALL BE LIMITED TO THE AMOUNT PAID BY THE CUSTOMER
  73.          FOR THE PRODUCT.  IN NO EVENT SHALL SPARKWARE BE LIABLE FOR
  74.          ANY SPECIAL, CONSEQUENTIAL, OR OTHER DAMAGES FOR BREACH OF
  75.          WARRANTY.
  76.      
  77.          SPARKWARE RESERVES THE RIGHT TO MAKE ANY CHANGES TO THESE
  78.          PROGRAMS, DOCUMENTATION AND CUSTOMER SUPPORT PLANS AT ANY
  79.          TIME WITHOUT PRIOR NOTICE.
  80.  
  81.          THIS SOFTWARE PROGRAM IS A PROPRIETY PRODUCT OF SPARKWARE
  82.          AND IS PROTECTED BY COPYRIGHTS AND INTERNATIONAL TREATIES.
  83.          YOU MUST TREAT THIS SOFTWARE LIKE ANY OTHER COPYRIGHTED
  84.          MATERIAL, EXCEPT THAT YOU MAY MAKE AN ARCHIVAL COPY OF THE
  85.          SOFTWARE FOR EACH COPY THAT IS LICENSED TO YOU.  YOU MAY
  86.          DISTRIBUTE THE SOFTWARE TO OTHERS SO LONG AS (A) THE
  87.          1ST.KEY OR QMAIL4.KEY FILE IS NOT DISTRIBUTED, (B) THE
  88.          SOFTWARE IS DISTRIBUTED UNMODIFIED.  YOU MAY NOT DECOMPILE,
  89.          DISASSEMBLE, REVERSE ENGINEER, COPY, TRANSFER, OR OTHERWISE
  90.          USE OR MODIFY THIS SOFTWARE EXCEPT AS STATED HEREIN.
  91.      
  92.          SPARKWARE GRANTS YOU THE RIGHT TO USE THIS SOFTWARE FOR
  93.          TRIAL PERIOD NOT TO EXCEED THIRTY (30) DAYS.  USE AFTER
  94.          THIRTY DAYS REQUIRES REGISTRATION AS DOCUMENTED IN THIS
  95.          MANUAL.
  96.      
  97.          1stReader
  98.          Entire work Copyright 1993 by Mark Herring
  99.          All Rights Reserved
  100.      
  101.          Sparkware
  102.          Post Office Box 386
  103.          Hendersonville, Tennessee   37077-0386
  104.  
  105.          (615) 230-8822    24 hour support bulletin board system
  106.          (615) 230-MAIL    Office  (10-12, 1-5 central time weekdays)
  107.  
  108.  
  109.  
  110.         TABLE OF CONTENTS
  111.  
  112.         DOS command line switches................................     3
  113.                 /CALL............................................     3
  114.                 /DEBUG...........................................     3
  115.                 /MAXLINES........................................     4
  116.                 /MPU401..........................................     4
  117.                 /NON.............................................     4
  118.                 /NOSCAN..........................................     5
  119.                 /ONLYREPS........................................     5
  120.                 /QWK.............................................     5
  121.                 /REP.............................................     5
  122.                 /SETUP...........................................     6
  123.                 /SHOWDEL.........................................     6
  124.                 /SILENT..........................................     6
  125.                 /SLOW............................................     6
  126.                 /SWAP............................................     6
  127.                 /TIME............................................     7
  128.                 /XON.............................................     7
  129.         Creating 1stReader LOAD files............................     8
  130.         1stReader Support Files..................................     9
  131.                 .BAT (or .BTM) files.............................    10
  132.                 $$MAIL.BAT.......................................    10
  133.                 $$REPLY.BAT......................................    11
  134.                 $$CALL.BAT.......................................    11
  135.                 $$CHECK.BAT......................................    11
  136.                 $$TERM.BAT.......................................    11
  137.                 $$BATCH.BAT......................................    12
  138.                 $$START.BAT and $$END.BAT........................    12
  139.                 $$REPLIES.BAT....................................    12
  140.                 $$FILER.BAT......................................    12
  141.                 $$EXIT.BAT.......................................    12
  142.                 $$SPELL.BAT......................................    13
  143.                 $$CNAMES.BAT.....................................    13
  144.                 $$Fxx.BAT........................................    13
  145.                 $$SHELL.BAT......................................    13
  146.                 .CMD and .LST files..............................    14
  147.                 $$1ST.CMD........................................    14
  148.                 $$ppff.CMD.......................................    15
  149.         Multiple EDITORS and LIST programs.......................    15
  150.         SHELL modifiers..........................................    16
  151.                 /API.............................................    16
  152.                 /CGA, /EGA and /VGA..............................    17
  153.                 /CLS and /NOCLS..................................    17
  154.                 /CURSOR_ON and /CURSOR_OFF.......................    17
  155.                 /DISPLAY.........................................    17
  156.                 /EXPORT..........................................    18
  157.                 /FONT............................................    18
  158.                 /IN..............................................    18
  159.                 /OUT.............................................    18
  160.                 /LIST............................................    19
  161.                 /MACRO...........................................    19
  162.                 /MSGTEXT.........................................    19
  163.                 /NS and /SS......................................    20
  164.                 /NULL and /NONULL................................    20
  165.                 /PAUSE...........................................    20
  166.                 /SCRNSAVE........................................    20
  167.                 KEYBOARD.$$$.....................................    20
  168.                 MESSAGE.$$$......................................    21
  169.                 LIST.$$$.........................................    21
  170.                 <confname>.TMP files.............................    21
  171.                 .CMD controls....................................    22
  172.  
  173.  
  174.  
  175.  
  176.         Features.................................................    22
  177.                 FEATURE=CALL.....................................    22
  178.                 FEATURE=MAIL.....................................    22
  179.                 FEATURE=MANAGER..................................    23
  180.                 FEATURE=SETUP....................................    23
  181.                 FEATURE=SNAPSHOT.................................    23
  182.                 FEATURE=TAGLINES.................................    23
  183.                 FEATURE=TERMINAL.................................    23
  184.         MultiMedia Extensions (MME)..............................    24
  185.                 .MME files.......................................    25
  186.                 Special files....................................    26
  187.                 $$ALARM..........................................    26
  188.                 $$CHKPRT.........................................    26
  189.                 $$EXIT...........................................    26
  190.                 $$H-<help_recnum>................................    26
  191.                 $$HELP...........................................    26
  192.                 $$INTRO..........................................    26
  193.                 \1ST\BBS\<confnum>...............................    26
  194.                 NEWS.............................................    27
  195.                 NEWFILES.........................................    27
  196.                 SERVICES.........................................    27
  197.                 LEAVING..........................................    27
  198.                 $$TRANS..........................................    27
  199.         The 1stReader Applications Program Interface (API).......    28
  200.                 1stReader Integer API table......................    28
  201.                 1stReader Long Integer API table.................    33
  202.                 1stReader String API table.......................    34
  203.                 @Variables supported by 1stReader................    37
  204.         1stReader script language................................    39
  205.                 ABORT............................................    39
  206.                 API..............................................    39
  207.                 AUTOEXIT.........................................    39
  208.                 BREAK............................................    40
  209.                 CALL.............................................    40
  210.                 CAPTURE..........................................    40
  211.                 CHECKTIME........................................    40
  212.                 CLS..............................................    40
  213.                 COMMENT..........................................    40
  214.                 COUNT............................................    40
  215.                 DEBUG............................................    41
  216.                 DISCONNECT.......................................    41
  217.                 DOWNLOAD.........................................    41
  218.                 EDIT.............................................    41
  219.                 EXIT.............................................    41
  220.                 FLAG.............................................    42
  221.                 FOUND=...........................................    42
  222.                 GOSUB............................................    42
  223.                 GOTO.............................................    42
  224.                 HANGUP...........................................    42
  225.                 HELP.............................................    42
  226.                 IF...............................................    43
  227.                 KEYSTROKE=.......................................    43
  228.                 KILL.............................................    43
  229.                 LIST.............................................    43
  230.                 LOCATE...........................................    43
  231.                 LOCKLINE.........................................    44
  232.                 LOOKFOR..........................................    44
  233.                 MME..............................................    44
  234.                 NEWFILES.........................................    44
  235.                 NEW_PASSWORD.....................................    45
  236.                 PAUSE............................................    45
  237.  
  238.  
  239.  
  240.  
  241.                 PLAY.............................................    45
  242.                 PROMPT...........................................    45
  243.                 REQ_FILE.........................................    45
  244.                 REQ_SETFILE......................................    45
  245.                 REQ_NEXT.........................................    45
  246.                 REQ_DONE.........................................    46
  247.                 REQ_CONF.........................................    46
  248.                 REQ_SET..........................................    46
  249.                 REPLIES..........................................    46
  250.                 RETURN...........................................    46
  251.                 RUN..............................................    46
  252.                 SET_FLAG.........................................    46
  253.                 SET_PASSWORD.....................................    47
  254.                 SHOW.............................................    47
  255.                 SWITCH...........................................    47
  256.                 TERMINAL.........................................    48
  257.                 TERSE............................................    48
  258.                 TRANSMIT.........................................    48
  259.                 TRANSMIT.........................................    48
  260.                 TIMEOUT..........................................    49
  261.                 UPLOAD...........................................    49
  262.                 WAITFOR..........................................    49
  263.                 WEEKDAY..........................................    49
  264.                 Special @variables...............................    50
  265.                 Special characters...............................    51
  266.         Hints and Tips...........................................    52
  267.                 Support for .BIN and .B1N files..................    52
  268.                 The WELCOME file.................................    52
  269.                 Using KEYBOARD.$$$ from the internal editor......    53
  270.                 Pre-Print and Post-Print strings.................    53
  271.                 Printer definition...............................    53
  272.                 Create your OWN help files.......................    53
  273.                 1stReader is network ready.......................    54
  274.                 GO.ASC, GO.ANS, GO.BIN, GO.B1N...................    54
  275.                 Automatic DOORWAY ON and DOORWAY OFF modes.......    55
  276.                 "Header" files...................................    55
  277.                 Auto sensing dialog boxes........................    56
  278.                 "Ok" and "Cancel" buttons........................    56
  279.                 Attention John Hancock fans!.....................    56
  280.                 Specialized conference files.....................    57
  281.                 Support for DOOR.ID..............................    57
  282.                 Downloading files................................    57
  283.                 Longer signatures................................    57
  284.                 Multiple signatures..............................    58
  285.                 Support for the "1ST" file.......................    58
  286.                 Automatic SuperShell.............................    58
  287.                 Nonstandard serial ports.........................    59
  288.                 New commands supported in DOOR.ID................    59
  289.                 LIST is restricted...............................    59
  290.                 Robocomm-named packets supported.................    60
  291.                 QMAIL4 is assumed................................    60
  292.                 Three button mice users..........................    60
  293.                 Using SPACE BAR and SHIFT+ENTER..................    60
  294.                 Protect those 'questionable' taglines............    61
  295.                 'Hotkey' your .CMD and .LST entries..............    61
  296.                 Entry fields are accessible......................    61
  297.                 Sysops can use Qmail Door in DOS using 1stReader.    62
  298.                 Control characters in .LST files and KEYBOARD.$$$    62
  299.  
  300.  
  301.  
  302.  
  303.                 $$DIAL.SCR supported.............................    63
  304.                 Addition bulletin board systems supported........    63
  305.                 Carriage returns in the modem init string........    63
  306.                 SERVICES.NEW.....................................    63
  307.                 Clear all entry fields with one keystroke........    64
  308.                 QSZ supports 'crash-recovery'....................    64
  309.                 Assign different prefixes to telephone numbers...    64
  310.                 Access interrupts from DOS command line functions    65
  311.                 NAPLPS support is now available..................    66
  312.                 Make temporary changes to your 1stReader setup...    66
  313.                 Tagline support from the terminal section........    66
  314.                 The 'CONFIRMATION' field.........................    67
  315.                 The .COPY command................................    67
  316.                 1stReader automatically aborts a script..........    67
  317.                 Picklist notices.................................    67
  318.                 Scroll quickly through large messages............    68
  319.                 Restricting some .CMD functions..................    68
  320.                 Locate a file inside your system's PATH statement    68
  321.                 Move files automatically into the BBS directory..    68
  322.                 Disconnect immediately after an upload/download..    69
  323.                 Modify the 1stReader API after a DOS shell.......    69
  324.                 Usenet message headers...........................    69
  325.                 Alias signatures.................................    70
  326.                 The virtual keyboard.............................    70
  327.                 The EXTRA FEATURE button.........................    70
  328.                 Display files directly from a .CMD file..........    71
  329.                 '$<macro>' now available in ANSI files...........    71
  330.                 Sensing color attributes.........................    72
  331.                 The NEWS.LST file................................    72
  332.                 The ATTACHED.LST file............................    72
  333.                 Save some disk space.............................    72
  334.                 The INSTALL module...............................    73
  335.                 Creating offline help for bulletin boards........    73
  336.  
  337.  
  338.  
  339.  
  340.          Please Note
  341.          -----------
  342.  
  343.          Except for the express warranty set forth, Sparkware grants
  344.          no other warranties, expressed or implied, by statue or
  345.          otherwise, regarding the disk, programs and related
  346.          materials, their fitness for any purpose, their quality,
  347.          their merchantability, or otherwise.
  348.  
  349.          The liability of Sparkware under the warranty set forth above
  350.          shall be limited to the amount paid by the customer for the
  351.          product.  In no event shall Sparkware be liable for any
  352.          special, consequential, or other damages for breach of
  353.          warranty.
  354.  
  355.          Sparkware reserves the right to make any changes to these
  356.          programs, documentation and customer support plans at any
  357.          time without prior notice.
  358.  
  359.          This software program is a propriety product of Sparkware and
  360.          is protected by copyrights and international treaties.  You
  361.          must treat this software like any other copyrighted material,
  362.          except that you may make an archival copy of the software for
  363.          each copy that is licensed to you.  You may distribute the
  364.          software to others so long as:
  365.  
  366.                  A) The 1ST.KEY or QMAIL4.KEY file(s) is not
  367.                     distributed.
  368.  
  369.                  B) The software is distributed unmodified.
  370.  
  371.          You may not decompile, disassemble, reverse engineer, copy,
  372.          transfer or otherwise use or modify this software except as
  373.          stated herein.
  374.  
  375.          Sparkware grants you the right to use this software for a
  376.          trial period not to exceed THIRTY (30) days.  Use after
  377.          thirty days requires registration.
  378.  
  379.  
  380.  
  381.          Qmail 1stReader
  382.          Entire work Copyright 1993 by Mark Herring
  383.          All Rights Reserved
  384.  
  385.          Sparkware
  386.          Post Office Box 386
  387.          Hendersonville, Tennessee   37077-0386
  388.  
  389.          (615) 230-8822    24 hour support bulletin board system
  390.          (615) 230-MAIL    Office  (10-12, 1-5 central time weekdays)
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.                                     Page 1 
  399.  
  400.  
  401.  
  402.          This manual is designed to help the advanced 1stReader access
  403.          all of the features found in the 1stReader offline mail
  404.          system.  If you are new to 1stReader or offline mail readers
  405.          in general, we strongly recommend that you do not use this
  406.          guide until you are familiar with 1stReader.
  407.  
  408.          1stReader was designed to be easily understood by the novice
  409.          user.  However, there are plenty of features available for
  410.          the advanced power user "under the hood".  The design
  411.          philosophy behind the 1stReader system was to provide an
  412.          interface for novice users that they could easily understand
  413.          and use.  The power user features are hidden underneath this
  414.          interface and you have the ability to access them.
  415.  
  416.          Remember, you do NOT need this guide in order to use
  417.          1stReader.  However, you can change the way 1stReader
  418.          operates by following the tips and suggestions in this guide.
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                                     Page 2 
  461.  
  462.  
  463.  
  464.          DOS command line switches
  465.          -------------------------
  466.  
  467.          1stReader supports a number of DOS command line switches you
  468.          can use at startup.  These switches, when placed after the
  469.          DOS command 1ST.EXE, allow you to change how 1stReader is
  470.          configured and operates.  You can 'stack' as many command
  471.          line switches as you wish.  You can also create files that
  472.          contain the DOS command line switches that can be easily
  473.          loaded.
  474.  
  475.  
  476.          /CALL: <list of systems>
  477.          -----------------------.
  478.          Tells 1stReader to immediately begin calling <list of
  479.          systems> from the DOS command prompt.  This switch lets you
  480.          call bulletin board systems directly from a batch file
  481.          instead of navigating through the 1stReader user interface.
  482.  
  483.          Example:        1ST /CALL: SPARKY EXECNET CHANNEL1
  484.  
  485.  
  486.          /DEBUG
  487.          ------
  488.          This command line switch will create various 'debugging'
  489.          files that can tell you how 1stReader is operating.
  490.          Depending on what you are doing within the reader, up to
  491.          three debugging files can be created in your 1stReader system
  492.          subdirectory.  These files are:
  493.  
  494.  
  495.  
  496.  
  497.                  1ST.DBG
  498.  
  499.                  This file contains information about your system and
  500.                  how it was operating while executing 1stReader.  It
  501.                  will contain the following data on each line in the
  502.                  file:
  503.  
  504.                          Free RAM available
  505.                          Free string space available
  506.                          Free stack space available
  507.                          Next file handle number to allocate
  508.                          Time of execution
  509.                          Description of operation
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.                                     Page 3 
  523.  
  524.  
  525.  
  526.                  SCRIPTS.DBG
  527.  
  528.                  This file contains a capture of the scripts executed
  529.                  by 1stReader when you call a bulletin board system.
  530.                  All @variables will be translated in this file so it
  531.                  provides an accurate record of how scripts were
  532.                  executed by 1stReader.
  533.  
  534.                  SERIAL.DBG
  535.  
  536.                  This file contains characters received by 1stReader
  537.                  from your modem when calling a bulletin board system.
  538.  
  539.  
  540.          /MAXLINES: <maximum number of lines per message>
  541.          ------------------------------------------------
  542.          The internal editor inside 1stReader lets you create replies
  543.          of up to 200 lines each.   If you decide to use an external
  544.          editor then the size of your replies can be as large as you
  545.          wish.
  546.  
  547.          1stReader 'breaks' your replies at 99 lines per message.
  548.          This is due to the limits imposed by some bulletin board
  549.          software and older offline mail readers still in use today.
  550.          However, you can adjust the size of the reply by using the
  551.          /MAXLINES command line switch.
  552.  
  553.          Example:        1ST /MAXLINES: 200
  554.  
  555.          This command would cause 1stReader to break long replies at
  556.          every 200 lines.  If you wish to break a long message at the
  557.          end of a paragraph you can insert ".PG" after the line you
  558.          wish to break.  ".PG" is not included in your reply when
  559.          transmitted to the bulletin board system.
  560.  
  561.  
  562.          /MPU401
  563.          -------
  564.          If you have a MPU401-compatible MIDI device connected to your
  565.          computer then this command will make 1stReader output .MID
  566.          files to your MIDI device rather than using a sound card.
  567.          Note that your MIDI interface must be connected to port 330h.
  568.  
  569.  
  570.          /NON
  571.          ----
  572.          1stReader uses "RTS" checking to determine when your modem is
  573.          ready to send characters to the remote system.  You can
  574.          disable ALL checking by using the /NON switch.
  575.  
  576.          Example:        1ST /NON
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.                                     Page 4 
  585.  
  586.  
  587.  
  588.          /NOSCAN
  589.          -------
  590.          If you have turned on the multimedia switch inside 1stReader
  591.          then anytime you display a text file the reader will try to
  592.          locate a .MME, .MID, .CMF or .VOC file that matches the
  593.          filename being displayed.  The "/NOSCAN" switch stops
  594.          1stReader from scanning for these sound files when displaying
  595.          text files.
  596.  
  597.  
  598.          /ONLYREPS: <list of systems>
  599.          ----------------------------
  600.          This DOS command line switch works just like the /CALL:
  601.          switch except that it will only call systems in the <list of
  602.          systems> that have message replies waiting to transmit.
  603.  
  604.          Example:        1ST /ONLYREPS: SPARKY EXECNET CHANNEL1
  605.  
  606.          If the mail sites SPARKY and CHANNEL1 have replies waiting to
  607.          be transmitted back to these systems, 1stReader will call
  608.          these systems.  If EXECNET does not have replies waiting to
  609.          be transmitted then the reader will skip calling EXECNET.
  610.  
  611.  
  612.          /QWK: <file extension>
  613.          ----------------------
  614.          Since 1stReader is designed to work with QWK formatted mail
  615.          packets, by default it looks for mail packets using the "Q*"
  616.          file extension.  You can override this extension by using the
  617.          /QWK command line switch.
  618.  
  619.          Example:        1ST /QWK: OPX
  620.  
  621.          Why would you want to change the file extension?  Later in
  622.          this guide we cover two batch files named "$$INTRO.BAT" and
  623.          "$$EXIT.BAT".  Programmers can use these files to create
  624.          programs that convert other non-QWK mail packets to and from
  625.          the QWK format.  The /QWK command line switch lets them tell
  626.          1stReader which type of mail packet to scan for in the list
  627.          of packets
  628.          on file.
  629.  
  630.  
  631.          /REP: <file extension>
  632.          ----------------------
  633.          This command line switch works just like the /QWK switch
  634.          except that it lets you change the default extension for mail
  635.          reply packets.  "REP" is the extension used for QWK mail
  636.          packets, but by using this switch you can change the
  637.          extension to any value desired.
  638.  
  639.          Example:        1ST /REP: TMP
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.                                     Page 5 
  647.  
  648.  
  649.  
  650.          /SETUP: <filespec>
  651.          ------------------
  652.          You can load a different 1stReader setup file (.SET) from the
  653.          DOS command line using this switch.
  654.  
  655.          Example:        1ST /SETUP: NETWORK.SET
  656.  
  657.  
  658.          /SHOWDEL
  659.          --------
  660.          If this command line switch is used then whenever you delete
  661.          a reply in 1stReader the message will remain in the REPLIES
  662.          conference until you close the mail packet.   Normally, when
  663.          you delete a reply in the REPLIES conference, 1stReader will
  664.          immediately remove it from the list of replies.  This switch
  665.          keeps the message in the REPLIES conference so you can
  666.          undelete it later in the same session.
  667.  
  668.          Example:        1ST /SHOWDEL
  669.  
  670.  
  671.          /SILENT
  672.          -------
  673.          Sometimes it might be nice if you could turn off the noises
  674.          and beeps 1stReader makes.  You could either be at the office
  675.          or doing a late night mail run at 3:00 am.  In either case,
  676.          use this command line switch to make 1stReader totally
  677.          silent - no matter how you have configured the reader.
  678.  
  679.          Example:        1ST /SILENT
  680.  
  681.  
  682.          /SLOW: <milliseconds>
  683.          ---------------------
  684.          1stReader pauses five milliseconds for each ANSI position
  685.          statement it receives while displaying color files and
  686.          messages.  If you have a faster computer this pause might not
  687.          be long enough.  You can use this DOS command line switch to
  688.          vary the number of milliseconds to pause.
  689.  
  690.          Example:        1ST /SLOW: 15
  691.  
  692.  
  693.          /SWAP: <filespec>
  694.          -----------------
  695.          1stReader's SuperShell system swaps the memory being used
  696.          into either EMS memory (if enough is available) or to a disk
  697.          file.  Normally, this disk file is named $$1ST.RAM and is
  698.          located in your 1stReader system subdirectory.  If you use
  699.          this command line switch then you can point 1stReader to
  700.          another filename if you wish.  If you have a large RAM disk
  701.          available it would be nice to point the swap file into the
  702.          RAM disk for faster speed.  1stReader overwrites <filespec>.
  703.  
  704.  
  705.  
  706.  
  707.  
  708.                                     Page 6 
  709.  
  710.  
  711.  
  712.          /TIME: <military format>
  713.          ------------------------
  714.          This command line switch works with the /CALL and /ONLYREPS
  715.          switches so you can set the time you wish to start calling
  716.          the <list of systems>.  Remember, you MUST use military
  717.          format if you wish to call systems starting after 12:59 pm
  718.          (1:00 pm is translated into 13:00 hours).
  719.  
  720.          Examples:
  721.  
  722.          1ST /CALL: SPARKY EXECNET CHANNEL1 /TIME: 20:00
  723.          1ST /ONLYREPS: SPARKY EXECNET CHANNEL 1 /TIME: 20:00
  724.  
  725.  
  726.          /XON
  727.          ----
  728.          1stReader uses the "RTS" method of checking to determine when
  729.          your modem is ready to receive characters.  This switch is
  730.          just like the /NON switch except that instead of turning off
  731.          ALL forms of line checking, it forces 1stReader to use
  732.          XON/XOFF checking (required by older modems).
  733.  
  734.          Example:        1ST /XON
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.                                     Page 7 
  771.  
  772.  
  773.  
  774.          Creating 1stReader LOAD files
  775.          -----------------------------
  776.  
  777.          You can create text files that contain multiple DOS command
  778.          line switches and easily load them from the DOS command
  779.          prompt with 1stReader.  Simply use a text editor to create a
  780.          file (you may give it any name you wish) and then tell the
  781.          reader to load it from the DOS command prompt.  1stReader
  782.          will read the switches from the file just like you entered
  783.          them from the DOS command line prompt.
  784.  
  785.          For example, if you wanted to create a LOAD file that would
  786.          always allocate 2,000 messages per conference and 10,000
  787.          lines per message (using EMS memory) and loads the
  788.          BIGSERF.FNT file, you could create a file named BIGEMS in a
  789.          text editor.  The file would contain this entry:
  790.  
  791.                      /EMS: 2000:10000 /FONT: BIGSERIF.FNT
  792.  
  793.          You could then tell 1stReader to load the BIGEMS file by
  794.          using the DOS command:
  795.  
  796.                                  1ST @BIGEMS
  797.  
  798.          The "@" tells 1stReader to look for the file "BIGEMS" and if
  799.          found use the DOS command line arguments it contains to start
  800.          up 1stReader.   There is one special filename reserved for
  801.          this feature.  If you create a file named "SWITCHES.1ST" and
  802.          you simply start 1stReader by typing "1ST" from the DOS
  803.          command line, then 1stReader will look for SWITCHES.1ST.  If
  804.          SWITCHES.1ST is found then the reader will read it for the
  805.          DOS command line switches.
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.                                     Page 8 
  833.  
  834.  
  835.  
  836.          1stReader Support Files
  837.          -----------------------
  838.  
  839.          There are files you can place inside your 1stReader system
  840.          subdirectory that can help you change the way 1stReader
  841.          operates.
  842.  
  843.          Before you continue, we need to explain the file directory
  844.          structure used by 1stReader.  You can, of course, change this
  845.          layout in the SETUP section inside 1stReader, but by default
  846.          this subdirectory tree structure is used:
  847.  
  848.                  \1ST\                   1stReader system subdirectory
  849.                  \1ST\SCRIPTS\           Script files location
  850.                  \1ST\PACKETS\           Mail packets location
  851.                  \1ST\FILES\             Files you download
  852.                  \1ST\PROGRAMS\          Programs area
  853.                  \1ST\FOLDERS\           Folders area
  854.                  \1ST\MME\               Location of sound files
  855.                  \1ST\WORK\              Temporary mail work area
  856.                  \1ST\REP-WORK\          Temporary replies work area
  857.                  \1ST\SERVICES\          Temporary services work area
  858.                  \1ST\BBS\QWK-ID\        The BBS subdirectories
  859.  
  860.          The two locations we are concerned about right now are the
  861.          System subdirectory (we'll call it SYSTEM) and the BBS
  862.          subdirectories (we'll call it BBS).  The BBS subdirectories
  863.          are created underneath the \1ST\BBS area.  Each system you
  864.          call with 1stReader has a unique BBS subdirectory underneath
  865.          this area.  It is here that all bulletins, archived file
  866.          lists, script files and other items unique to each system is
  867.          stored.  So, when we refer to the BBS subdirectory, we are
  868.          actually referring to the unique subdirectory for a
  869.          particular bulletin board system, not \1ST\BBS\ itself.
  870.  
  871.          The files described below can be located in either the
  872.          SYSTEM, SCRIPTS or BBS subdirectory.   1stReader will always
  873.          look in the BBS subdirectory for the file first.  If the file
  874.          is not found then 1stReader will check for the file in the
  875.          SCRIPTS subdirectory.  Finally, if the file is not found in
  876.          that subdirectory the reader checks the SYSTEM subdirectory.
  877.          The major exception to this rule is when 1stReader is at the
  878.          OPENING SCREEN menu.  Since you haven't selected a system
  879.          from the menu 1stReader will skip checking the BBS
  880.          subdirectory first.
  881.  
  882.          If the file is found the BBS subdirectory then that file will
  883.          only work when you have selected that system from the opening
  884.          screen menu.  Otherwise, if the file is not found in the BBS
  885.          subdirectory but it is found elsewhere that file is available
  886.          at ALL times.
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.                                     Page 9 
  895.  
  896.  
  897.  
  898.          There are four different types of support file.  They are
  899.          .BAT, .CMD, .LST and .MME files.
  900.  
  901.  
  902.  
  903.  
  904.          .BAT (or .BTM) files
  905.          --------------------
  906.  
  907.          You can "by pass" the built-in features found in 1stReader
  908.          with your own personal favorites if you wish.  Of course, you
  909.          can use your own internal file LIST or EDITOR programs by
  910.          entering their DOS commands in SETUP's EDITOR section.  But
  911.          you can replace many of the internal systems found in
  912.          1stReader by using batch files.
  913.  
  914.          1stReader will follow the normal BBS/SCRIPTS/SYSTEM search
  915.          method to locate these files unless  specifically mentioned
  916.          in the descriptions below.  Also, if you have turned on 4DOS
  917.          support within 1stReader remember that 1st will be looking
  918.          for .BTM files instead.
  919.  
  920.          1stReader never actually executes the batch file you create.
  921.          Instead, it reads the contents of the batch file and creates
  922.          a temporary batch file to execute named $$EXEC.BAT.  When
  923.          1stReader is reading the contents of your batch file it can
  924.          substitute values from the Applications Program Interface
  925.          (API).  The API is defined later in this guide.  All you need
  926.          to remember for now is that you can substitute API variables
  927.          in your batch files as needed.
  928.  
  929.  
  930.          $$MAIL.BAT
  931.          ----------
  932.          If you wish to use your favorite telecommunications software
  933.          to call bulletin board systems you can replace the internal
  934.          module in 1stReader by creating a $$MAIL.BAT file.  This file
  935.          passes along to the application the QWK-ID of the system you
  936.          have selected in the '%1' parameter in the batch file.
  937.  
  938.          There are two communication systems that are designed to
  939.          transfer mail packets to and from offline mail systems.
  940.          These two programs are ICOM from Liberation Enterprises and
  941.          ROBOCOMM from Parsons Technologies.  If you wish to use
  942.          either of these systems with 1stReader you need to create a
  943.          $$MAIL.BAT file that will CHDIR into the proper subdirectory
  944.          and then execute the program.  Inside the batch file you need
  945.          to use these commands to run either program:
  946.  
  947.                  For ICOM use the command:       ICOM /RUN:%1
  948.                  For ROBOCOMM use the command:   ROBOCOMM /A%1 /R
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.                                     Page 10 
  957.  
  958.  
  959.  
  960.          The QWK-ID for the system is passed in the '%1' parameter so
  961.          you need to make sure you have a job (for ICOM) or an agenda
  962.          (for ROBOCOMM) prepared to call the bulletin board system.
  963.  
  964.  
  965.          $$REPLY.BAT
  966.          -----------
  967.          This batch file works just like $$MAIL.BAT except that it is
  968.          used if you wish to transmit replies back to the bulletin
  969.          board system without picking up new mail.  If this batch file
  970.          is found and you have selected the "Get Mail" button and you
  971.          also have replies on file, you will be asked if you wish to
  972.          only transmit replies to the system.
  973.  
  974.  
  975.          $$CALL.BAT
  976.          ----------
  977.          This batch file works just like $$MAIL.BAT except that it is
  978.          used to call the bulletin board and place the user in an
  979.          interactive terminal mode.  You can interface 1stReader with
  980.          your favorite terminal program (ProComm, Telix, etc) by using
  981.          this batch file.
  982.  
  983.  
  984.          $$CHECK.BAT
  985.          -----------
  986.          This batch file lets 1stReader test archives for any
  987.          potential viruses that might be included in programs you
  988.          download from other bulletin board systems.  Unfortunately,
  989.          it is a fact these days that people create programs that try
  990.          to destroy your data.  In response to this threat, companies
  991.          have created programs to detect these virus programs before
  992.          they can infect your computer.
  993.  
  994.          1stReader can automatically test for viruses by using the
  995.          $$CHECK.BAT batch file.  Only one parameter is passed to this
  996.          batch file in the '%1' parameter, the location of the
  997.          subdirectory that contains the files to be tested.
  998.          $$CHECK.BAT should call your virus checking software passing
  999.          the location of this subdirectory to the program.
  1000.  
  1001.          $$CHECK.BAT is automatically executed after you unpack an
  1002.          archive downloaded from a bulletin board system.
  1003.  
  1004.  
  1005.          $$TERM.BAT
  1006.          ----------
  1007.          You can use your favorite telecommunications program with
  1008.          1stReader.  The $$TERM.BAT file can call a communications
  1009.          program when you select the 'Terminal' button from the
  1010.          'Opening Menu' screen.  Simply use this batch file to call
  1011.          your telecom program.
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.                                     Page 11 
  1019.  
  1020.  
  1021.  
  1022.          $$BATCH.BAT
  1023.          -----------
  1024.          If you call more than one system in a batch mode (either by
  1025.          using the /CALL, /ONLYREPS or by tagging multiple systems
  1026.          from the list of systems, when finished calling these
  1027.          systems, 1stReader will execute $$BATCH.BAT if the batch file
  1028.          exists.
  1029.  
  1030.  
  1031.          $$START.BAT and $$END.BAT
  1032.          -------------------------
  1033.          These batch files are executed automatically by 1stReader
  1034.          when you begin and exit 1stReader.  You can use these batch
  1035.          files to perform any functions you wish.
  1036.  
  1037.  
  1038.          $$REPLIES.BAT
  1039.          -------------
  1040.          This batch is executed by 1stReader as soon as a reply mail
  1041.          packet is unbundled.  The idea behind this batch file is to
  1042.          allow you to process the reply mail packet in any way you
  1043.          wish before you read the mail packet.  The same parameters
  1044.          used in the $$INTRO.BAT file are passed to this batch
  1045.          file from 1stReader.
  1046.  
  1047.  
  1048.          $$FILER.BAT
  1049.          -----------
  1050.          This batch file will execute whenever you click on the
  1051.          "Files" button in the "Read messages" screen.  It's designed
  1052.          so you can process the NEWFILES.DAT file any way you wish.
  1053.          The NEWFILES.DAT file contains a list of newly uploaded files
  1054.          on a bulletin board system.  Only one parameter is passed in
  1055.          '%1' to the batch file, - the full name of the NEWFILES.DAT
  1056.          filespec.
  1057.  
  1058.  
  1059.          $$EXIT.BAT
  1060.          ----------
  1061.          $$EXIT.BAT works just like $$INTRO.BAT, except that instead
  1062.          of being a "preprocessor" for the mail packet it is a "post-
  1063.          processor".  This batch file is called after you have exited
  1064.          the mail packet but before the contents of the work
  1065.          subdirectories are erased.  Any files found in the REP-WORK
  1066.          subdirectory are included in the .REP reply mail packet.
  1067.  
  1068.          Three parameters are passed to the $$EXIT.BAT file.  These
  1069.          parameters are:
  1070.  
  1071.                         %1        Name of the QWK-ID for the system
  1072.                         %2        Path to the work subdirectory
  1073.                         %3        Path to the replies subdirectory
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.                                     Page 12 
  1081.  
  1082.  
  1083.  
  1084.          $$SPELL.BAT
  1085.          -----------
  1086.          If this batch file exists then 1stReader will ask you if you
  1087.          wish to perform a spelling check on your reply just before
  1088.          you save the message.  The batch file uses the '%1' parameter
  1089.          to store the filename being passed to the batch file.  This
  1090.          is a great way to interface spelling checkers like SHARESPELL
  1091.          with 1stReader.  Example (assumes ShareSpell is in the
  1092.          \SSPELL subdirectory):
  1093.  
  1094.                         @ECHO OFF
  1095.                         CD \SSPELL
  1096.                         SS %1
  1097.  
  1098.  
  1099.          $$CNAMES.BAT
  1100.          ------------
  1101.          This batch file works when a user clicks on the "Conf List"
  1102.          button in the 'Join a conference' screen.  The idea behind
  1103.          this batch is to allow 1stReader to shell to a program that
  1104.          the user can query for conference information.  Some systems
  1105.          have over 5,000 conferences so a database isn't such a bad
  1106.          idea!
  1107.  
  1108.  
  1109.          $$Fxx.BAT
  1110.          ---------
  1111.          These batch files (where 'xx' is a value from 1 to 10)
  1112.          correspond to the function keys on your keyboard.  If you
  1113.          press the [SHIFT]+F10 key, for example, then 1stReader will
  1114.          execute $$F10.BAT (if found).  This feature lets you
  1115.          interface programs that you wish to have executed from one
  1116.          keystroke rather than inserting them into the [F7] command
  1117.          files.
  1118.  
  1119.  
  1120.          $$SHELL.BAT
  1121.          -----------
  1122.          Whenever you manage files 1stReader will take you into the
  1123.          file manager.  If you wish to use your own file managing
  1124.          system create a file named $$SHELL.BAT.  This batch file
  1125.          should call your file manager.  1stReader passes the location
  1126.          of the subdirectory to be managed in the '%1' parameter.
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.                                     Page 13 
  1143.  
  1144.  
  1145.  
  1146.          .CMD and .LST files
  1147.          -------------------
  1148.  
  1149.          .CMD (Command) and .LST (pick list) files let you integrate
  1150.          other programs into 1stReader.  .CMD files are text files
  1151.          that contain program descriptions and program commands in a
  1152.          pulldown menu.  You can call up the .CMD file(s) by pressing
  1153.          the [F7] key on your keyboard.
  1154.  
  1155.          .LST files let you pass on keyboard macros into 1stReader
  1156.          using a pulldown menu too.  Press the [F8] key on your
  1157.          keyboard to call up .LST files.  Please note that .LST files
  1158.          are available for certain keyboard prompts only.
  1159.  
  1160.                          The format of a .CMD file is:
  1161.  
  1162.                          TITLE=<title description>
  1163.                          Description #1,DOS command #1
  1164.                          Description #2,DOS command #2
  1165.                          Description #3,DOS command #3
  1166.  
  1167.                          The format of a .LST file is:
  1168.  
  1169.                          TITLE=<title description>
  1170.                          Description #1,Keyboard macro #1
  1171.                          Description #2,Keyboard macro #2
  1172.                          Description #3,Keyboard macro #3
  1173.  
  1174.          You may have up to 100 commands per file.  You can also
  1175.          "chain" other .CMD or .LST files by using the syntax:
  1176.  
  1177.                 Desc,FILE=filespec.CMD or Desc,FILE=filespec.LST
  1178.  
  1179.          To create a .CMD file press ALT+F7. or press ALT+F8 to create
  1180.          a .LST file.  This will place you in the editor where you can
  1181.          create the file.  If you are in 'novice mode' then you will
  1182.          know that a picklist is available because 1stReader displays
  1183.          "[F8]=Picklist" on your screen.
  1184.  
  1185.  
  1186.          $$1ST.CMD
  1187.          ---------
  1188.          Usually, you will be interested in $$1ST.CMD.  If this file
  1189.          exists then 1stReader will load the file and display the menu
  1190.          of functions in the middle of your screen.  You can then
  1191.          select which program you wish to execute and 1stReader will
  1192.          SHELL and execute the DOS command.
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.                                     Page 14 
  1205.  
  1206.  
  1207.  
  1208.          $$ppff.CMD
  1209.          ----------
  1210.          Almost all of the keyboard input fields are identified in
  1211.          1stReader by page and field number.  If $$ppff.CMD exists
  1212.          (where "pp" is the page number and "ff" is the field number)
  1213.          then 1stReader will display THIS file instead of $$1ST.CMD,
  1214.          if $$ppff.CMD exists.  You can create custom .CMD files for
  1215.          specific keyboard input fields by pressing the ALT+F7 key at
  1216.          anytime.
  1217.  
  1218.  
  1219.  
  1220.  
  1221.          Multiple EDITORS and LIST programs
  1222.          ----------------------------------
  1223.  
  1224.          If you wish to use external editors or list programs you can
  1225.          create EDITORS.CMD and LIST.CMD files that contain the
  1226.          descriptions and commands needed to execute them.  For
  1227.          example, EDITORS.CMD might contain:
  1228.  
  1229.                          TITLE=External Editors
  1230.                          QEdit,Q %1 %2
  1231.                          TED,TED %1
  1232.                          DOS 6.00 Editor,EDIT %1
  1233.  
  1234.          Instead of entering the DOS command for an editor you would
  1235.          use the entry "EDITORS.CMD" instead.  Then, when you are
  1236.          about to SHELL to DOS to execute the external editor
  1237.          1stReader will ask you to select an editor from this list.
  1238.          '%1' gets translated into the ORIGINAL filespec and '%2' gets
  1239.          translated into the REPLY filespec.
  1240.  
  1241.          The same technique works for LIST.CMD except that you would
  1242.          only use '%1' to be replaced by the name of the file to list.
  1243.  
  1244.          1stReader supports up to 100 external editors and file
  1245.          listers using this technique.  You can create these files by
  1246.          going into Setup's "EDITOR" section then entering LIST.CMD
  1247.          and/or EDITORS.CMD in the appropriate entry field.  Then
  1248.          press ALT+F7 to create the file.
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.                                     Page 15 
  1267.  
  1268.  
  1269.  
  1270.          SHELL modifiers
  1271.          ---------------
  1272.  
  1273.          1stReader lets you control HOW it shells to a program using
  1274.          "shell modifiers".  These switches let you control whether
  1275.          the current screen is saved or cleared before you shell to
  1276.          DOS, if you wish to PAUSE before returning back to 1stReader,
  1277.          etc.
  1278.  
  1279.          Shell modifiers can be used in any DOS command executed from
  1280.          within 1stReader.  Usually, this means DOS commands issued
  1281.          from .CMD menus.  You can add SHELL modifiers directly into
  1282.          batch files by adding this line into the batch file itself:
  1283.  
  1284.                  :1ST shell modifier1 shell modifer2 ...
  1285.  
  1286.  
  1287.          /API: <filespec>
  1288.          ----------------
  1289.          The /API modifier tells 1stReader to create a file named
  1290.          <filespec> that contains the entire contents of the 1stReader
  1291.          API (Applications Program Interface).  This modifier lets
  1292.          third-party programmers read the current environment used by
  1293.          1stReader so they may take advantage of them for their
  1294.          own programs.
  1295.  
  1296.          The 1stReader API is defined later in this guide.  Here is
  1297.          the format for the file created by this modifier:
  1298.  
  1299.                  Version number                    INTEGER
  1300.                  Number of INTEGER API variables   INTEGER  (IMax)
  1301.                  Number of LONG API variables      INTEGER  (LMax)
  1302.                  Number of DEFAULT switches        INTEGER  (SwMax)
  1303.                  Number of STRING API variables    INTEGER  (SMax)
  1304.  
  1305.                  API(0)-API(IMax) INTEGER values   INTEGER*(IMax+1)
  1306.                  API&(0)-API&(LMax) LONG values    LONG*(LMax+1)
  1307.                  Switch(1)-Switch(SwMax)           INTEGER*(SwMax)
  1308.  
  1309.                  Next comes the API$() lookup table.  This is a table
  1310.                  that is SMax+1 entries long.  Each API$() value has
  1311.                  an offset and length value in this table.  Example:
  1312.  
  1313.                                 API$(0)         OFFSET:LENGTH
  1314.                                 API$(1)         OFFSET:LENGTH
  1315.  
  1316.                  You would read the offset to the variable you wish to
  1317.                  read and then SEEK to this position in the file and
  1318.                  read LENGTH number of bytes to access the string
  1319.                  variable.
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.                                     Page 16 
  1329.  
  1330.  
  1331.  
  1332.          /CGA, /EGA and /VGA
  1333.          -------------------
  1334.          These modifiers are to be placed on DOS commands when the
  1335.          shelled program requires that the system is connected to
  1336.          either a CGA, EGA or VGA monitor.
  1337.  
  1338.          For example, let's say you wanted to run a program that
  1339.          displayed a GIF file.  You can restrict use of the program to
  1340.          systems that have VGA color monitors by using this command:
  1341.  
  1342.                         Display a GIF file,NANOGIF /VGA
  1343.  
  1344.          A system equipped with a monochrome, CGA or EGA monitor would
  1345.          not execute this command.
  1346.  
  1347.  
  1348.          /CLS and /NOCLS
  1349.          ---------------
  1350.          The /CLS modifier tells 1stReader to erase the screen and
  1351.          display the DOS command before execution.  /NOCLS tells
  1352.          1stReader to leave the current screen intact and shell to the
  1353.          program, providing a "seamless" screen.  When the application
  1354.          returns control back to 1stReader the current screen is
  1355.          always restored.
  1356.  
  1357.  
  1358.          /CURSOR_ON and /CURSOR_OFF
  1359.          --------------------------
  1360.          These two modifiers control the cursor while shelling from
  1361.          1stReader.  If you wish to turn the DOS cursor on while
  1362.          shelling to a program use /CURSOR_ON.  /CURSOR_OFF will turn
  1363.          the cursor off.  Note that 1stReader always restores the
  1364.          cursor to the same condition after a DOS shell has taken
  1365.          place.
  1366.  
  1367.  
  1368.          /DISPLAY: <text>
  1369.          ----------------
  1370.          This modifier can be used to display a dialog box while
  1371.          shelling to a program from 1stReader.  Any text following
  1372.          this switch is displayed inside a dialog box on the screen as
  1373.          1stReader shells to DOS.
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.                                     Page 17 
  1391.  
  1392.  
  1393.  
  1394.          /EXPORT: <filespec>
  1395.          -------------------
  1396.          This modifier lets you export the current message into
  1397.          <filespec> so you can shell to another program that reads
  1398.          <filespec> for input.  This is a powerful feature that lets
  1399.          third-party software link into 1stReader and offer you
  1400.          capabilities above those found in the reader.
  1401.  
  1402.          The format of the exported message file is:
  1403.  
  1404.                  1stReader release number
  1405.                  Name of the bulletin board
  1406.                  Location
  1407.                  Telephone number
  1408.                  Sysop's name
  1409.                  Qmail Door serial number
  1410.                  PCBoard message status (225=Active, 226=Deleted)
  1411.                  Conference number
  1412.                  Message number
  1413.                  Message status flag
  1414.                  Date
  1415.                  Time
  1416.                  To
  1417.                  From
  1418.                  Subject
  1419.                  Reference number
  1420.                  Number of lines in text body
  1421.                  ...Message text...
  1422.  
  1423.          <filespec> is automatically deleted by 1stReader when you
  1424.          return from the DOS command.
  1425.  
  1426.  
  1427.          /FONT
  1428.          -----
  1429.          This modifier reloads a video font that was loaded by
  1430.          1stReader using the /FONT: <filespec> DOS switch.  Sometimes,
  1431.          when you execute a program from within 1stReader, the program
  1432.          can reset the video font.  This modifier tells 1stReader to
  1433.          reload the current font from disk after executing the DOS
  1434.          command.
  1435.  
  1436.  
  1437.          /IN: <filespec1>  /OUT: <filespec2>
  1438.          -----------------------------------
  1439.          These two modifiers work together...there is no point in
  1440.          using /IN without also using /OUT.  They provide you with a
  1441.          "flexible" API setup for third-party programmers.
  1442.  
  1443.          This concept takes a bit of explaining.  Remember the /API
  1444.          modifier described earlier?  That modifier creates a file of
  1445.          every entry contained in the 1stReader API.  As a third-party
  1446.          programmer, you might only be interested in using a few of
  1447.          the entries, but maybe not every single one.
  1448.  
  1449.  
  1450.  
  1451.  
  1452.                                     Page 18 
  1453.  
  1454.  
  1455.  
  1456.          1stReader uses <filespec1> as a "template" in order to create
  1457.          <filespec2>.  The template can contain any information your
  1458.          application requires in any order you wish.  @variables
  1459.          defined in <filespec1> are translated and written to
  1460.          <filespec2>.
  1461.  
  1462.          For example:
  1463.  
  1464.            <filespec1>                        <filespec2>
  1465.            -----------------------            ------------------------
  1466.            My App 1.01                        My App 1.01
  1467.            @API$(0)                           C:\1ST\1ST.SET
  1468.            @API$(5)                           C:\1ST\
  1469.            @API$(36),@DAY@                    MARK HERRING,Wed
  1470.  
  1471.          As you can see, 1stReader "reads" <filespec1> and translates
  1472.          it into <filespec2>.  Any "literals" that 1stReader cannot
  1473.          translate get passed "as is".  <filespec1> is never deleted
  1474.          by 1stReader.  <filespec2> is erased after returning from the
  1475.          DOS command.
  1476.  
  1477.  
  1478.          /LIST: <filespec>
  1479.  
  1480.          After completing the DOS shell, 1stReader will look for
  1481.          <filespec> and if found will list the file on the screen.
  1482.          Unlike LIST.$$$, <filespec> is not deleted by 1stReader.
  1483.  
  1484.  
  1485.          /MACRO: <text>
  1486.          --------------
  1487.          You can 'stuff' text into 1stReader's macro buffer
  1488.          immediately after returning from a DOS command using this
  1489.          modifier.
  1490.  
  1491.  
  1492.          /MSGTEXT: <filespec>
  1493.          --------------------
  1494.          This modifier works just like /EXPORT except that <filespec>
  1495.          only contains the text of the message and nothing else.
  1496.          /EXPORT creates a file that includes the TO, FROM, SUBJECT
  1497.          and other message header info.
  1498.  
  1499.          /MSGTEXT will work great for those users who want to use
  1500.          UUENCODE to rebuild an encoded file received via a Usenet
  1501.          message, among many other uses.
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.                                     Page 19 
  1515.  
  1516.  
  1517.  
  1518.          /NS and /SS
  1519.          -----------
  1520.          The /NS (No Supershell) modifier tells 1stReader that if
  1521.          SuperShell has been turned ON by the user then it should not
  1522.          invoke a SuperShell during this DOS command.
  1523.  
  1524.          /SS (SuperShell) works in the opposite manner.  It tells
  1525.          1stReader to invoke SuperShell even if the user has not
  1526.          turned SuperShell on.
  1527.  
  1528.  
  1529.          /NULL and /NONULL
  1530.          -----------------
  1531.          "/NULL" tells 1stReader to add ">NUL" to the DOS command line
  1532.          so that BIOS output will not echo to the screen.  "/NONULL"
  1533.          does the exact opposite - it will remove any ">NUL" added to
  1534.          a DOS command.  This lets you shell to programs that use BIOS
  1535.          output and lets you see the output.
  1536.  
  1537.  
  1538.          /PAUSE
  1539.          ------
  1540.          This modifier tells 1stReader to pause and wait for a
  1541.          keystroke before returning control back to the user.
  1542.  
  1543.  
  1544.          /SCRNSAVE: <filespec>
  1545.          ---------------------
  1546.          This modifier saves the current screen into <filespec> as a
  1547.          BINARY file.
  1548.  
  1549.  
  1550.          KEYBOARD.$$$
  1551.          ------------
  1552.          This isn't a DOS command modifier but rather a file that can
  1553.          contain information to be passed back to 1stReader.  If you
  1554.          shell to DOS from a keyboard input field, and the application
  1555.          you execute creates a KEYBOARD.$$$ file in the current
  1556.          subdirectory, this file is read by 1stReader and its contents
  1557.          entered into the current keyboard entry field.  This is an
  1558.          excellent way for third-party applications (like address
  1559.          books) to pass information back to 1stReader.
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.                                     Page 20 
  1577.  
  1578.  
  1579.  
  1580.          MESSAGE.$$$
  1581.          -----------
  1582.          This too isn't a DOS command modifier.  Instead, it is a file
  1583.          that contains a full message that is to be saved by 1stReader
  1584.          into the mail reply packet.
  1585.  
  1586.          The idea behind supporting this file is to allow other
  1587.          programs that might be shelled to from 1stReader to save
  1588.          messages automatically, without having to go through the same
  1589.          steps 1stReader performs to save the message.
  1590.  
  1591.          Here is the format used for MESSAGE.$$$:
  1592.  
  1593.                  Line 1:        Conference number to save message
  1594.                  Line 2:        If a public message this line is
  1595.                                 blank, otherwise the message is a
  1596.                                 personal msg.
  1597.                  Line 3:        Message TO field (address to whom)
  1598.                  Line 4:        Message SUBJECT field
  1599.                  Line 5:        Tagline to pass to 1stReader
  1600.  
  1601.                  Message text follows on line #6 and below.
  1602.  
  1603.          1stReader always checks for MESSAGE.$$$ after a DOS shell and
  1604.          deletes the file after saving the message.
  1605.  
  1606.  
  1607.          LIST.$$$
  1608.  
  1609.          1stReader will check for this file after a DOS shell.  If the
  1610.          file is found then LIST.$$$ will be displayed by 1stReader's
  1611.          internal LIST module and then be deleted.
  1612.  
  1613.  
  1614.          <confname>.TMP files
  1615.          --------------------
  1616.          The template files let you create 'forms' that are
  1617.          automatically inserted into the editor when a user ENTERS a
  1618.          new message.  The form can be a standard bug report form or
  1619.          any form you wish.  The idea behind this feature is to give
  1620.          the user an idea of what they should enter in a new message.
  1621.  
  1622.          1stReader looks for <confname>.TMP using the current
  1623.          conference's name (up to the first eight characters).  For
  1624.          example, if the user was in the 'TEST' conference and entered
  1625.          a new message, 1stReader would look for TEST.TMP and if found
  1626.          it would load it into the editor.  If TEST.TMP is not found
  1627.          then 1stReader looks for $$1ST.TMP instead.
  1628.  
  1629.          If the internal editor is used 1stReader also toggles the
  1630.          editor into an 'overstrike' mode.
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.                                     Page 21 
  1639.  
  1640.  
  1641.  
  1642.          .CMD controls
  1643.          -------------
  1644.          Some programs that can be installed into a .CMD menu might
  1645.          only operated after you have selected a bulletin board system
  1646.          from the opening menu.  They might not work properly because
  1647.          the user might be located at the opening menu or in the
  1648.          terminal mode.  If you wish to prevent a program from
  1649.          appearing in the menu when a BBS has not been selected, add
  1650.          "<BBS>" to the DOS command for that option.  This tells
  1651.          1stReader to skip loading this command into the menu screen
  1652.          if a BBS has not yet been selected.
  1653.  
  1654.          Example:
  1655.  
  1656.          Forward msg,FORWARD /IN:FORWARD.IN /OUT:FORWARD.$$$ <BBS>
  1657.  
  1658.  
  1659.  
  1660.  
  1661.          Features
  1662.          --------
  1663.  
  1664.          You can also access some of the 1stReader internal routines
  1665.          from a .CMD menu.  In order to access the routines 1stReader
  1666.          checks to make sure you are not already using the routines.
  1667.          If you are using the routines then these commands will not
  1668.          appear in your CMD menu at that time.
  1669.  
  1670.          For example, if you are using the file manager and press the
  1671.          [F7] to call up $$1ST.CMD and try to manage a subdirectory
  1672.          from the list of commands, the FEATURE=MANAGER command will
  1673.          not be displayed to you.
  1674.  
  1675.  
  1676.          FEATURE=CALL
  1677.          ------------
  1678.          Lets you call the currently selected bulletin board system
  1679.          from the .CMD menu.  1stReader will place you in the terminal
  1680.          mode and call the system logging you onto the BBS.
  1681.  
  1682.          Example:        Call this system,FEATURE=CALL
  1683.  
  1684.  
  1685.          FEATURE=MAIL
  1686.          ------------
  1687.          This feature works just like the CALL feature except that it
  1688.          will make a full mail run to the selected bulletin board
  1689.          system.
  1690.  
  1691.          Example:        Make a mail run,FEATURE=MAIL
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.                                     Page 22 
  1701.  
  1702.  
  1703.  
  1704.          FEATURE=MANAGER directory [<ABS>]
  1705.          ---------------------------------
  1706.          Lets you access the 1stReader file manager.  If directory is
  1707.          entered on the same line then 1stReader will manage
  1708.          directory.   If "<ABS>" is included on the command line then
  1709.          the reader will not ask you for a directory path before
  1710.          entering the file manager.
  1711.  
  1712.          Example:
  1713.  
  1714.          Manage Downloads,FEATURE=MANAGER @API$(2) <ABS>
  1715.  
  1716.  
  1717.          FEATURE=SETUP
  1718.          -------------
  1719.          Lets you access the 1stReader setup section (the same section
  1720.          used by the SETUP button on the Opening Menu).
  1721.  
  1722.          Example:        1stReader setup,FEATURE=SETUP
  1723.  
  1724.  
  1725.          FEATURE=SNAPSHOT <filespec>
  1726.          ---------------------------
  1727.          This feature lets you capture the current screen into
  1728.          <filespec> as a .BIN file.  If you do not user a filespec
  1729.          then 1ST-SNAP.BIN is used by default.
  1730.  
  1731.          Example:        Save screen,FEATURE=SNAPSHOT TEST.BIN
  1732.  
  1733.  
  1734.          FEATURE=TAGLINES
  1735.          ----------------
  1736.          You can manage your 1stReader taglines from anywhere within
  1737.          1stReader using this feature.
  1738.  
  1739.          Example:        Manage taglines,FEATURE=TAGLINES
  1740.  
  1741.  
  1742.          FEATURE=TERMINAL SCRIPT: filename PHONE: phone BAUD: baud
  1743.  
  1744.          This feature lets you access the 1stReader terminal section.
  1745.          If you have created a $$TERM.BAT file then the reader will
  1746.          use this batch file to call up your terminal program
  1747.          (1stReader will ignore the SCRIPT and PHONE parameters if
  1748.          used).
  1749.  
  1750.          You can also pass on to the terminal section the telephone
  1751.          number of the system you wish to dial (and the baud rate to
  1752.          use) as well as the name of a script file to execute.
  1753.  
  1754.          Example:
  1755.  
  1756.          Call Sparky's,FEATURE=TERMINAL PHONE: 230-8822 BAUD: 19200
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.                                     Page 23 
  1763.  
  1764.  
  1765.  
  1766.          MultiMedia Extensions (MME)
  1767.          ---------------------------
  1768.  
  1769.          If you have a Sound Blaster (or compatible) sound card
  1770.          installed in your computer system then 1stReader can play
  1771.          .VOC (sampled data), .CMF (FM music), .MID (midi) and .MME
  1772.          files through your sound card.  All you need to do is to turn
  1773.          the "MultiMedia" switch ON in the SETUP/SWITCHES section
  1774.  
  1775.          Please Note: It is not recommended that you turn on the
  1776.                       MultiMedia switch while running 1stReader under
  1777.                       Windows or Desqview.
  1778.  
  1779.                       If you do not have a sound card installed in
  1780.                       your computer or you do not wish to use MME
  1781.                       within 1stReader you should turn the multimedia
  1782.                       switch OFF.
  1783.  
  1784.                       If you start 1stReader using the /SILENT DOS
  1785.                       command switch then 1stReader will not play
  1786.                       multimedia files for that session.
  1787.  
  1788.          Whenever you are in the 1stReader file manager you can select
  1789.          a .VOC, .MID or .CMF file and 1stReader will play the file
  1790.          through your sound card.  However, when the reader displays a
  1791.          text or ANSI file it will also look for a file that matches
  1792.          the filename being displayed (but not the extension) and if
  1793.          found, that file will be played through the sound card.  It
  1794.          is better to give an example of how this works...
  1795.  
  1796.          Whenever you unpack a QWK mail packet in 1stReader the reader
  1797.          always looks to display a WELCOME file included in the mail
  1798.          packet.  If you have MME turned on then 1stReader looks for
  1799.          these files in the this order:
  1800.  
  1801.                         \1ST\BBS\<QWK-ID>\WELCOME.MME
  1802.                         \1ST\BBS\<QWK-ID>\WELCOME.MID
  1803.                         \1ST\BBS\<QWK-ID>\WELCOME.CMF
  1804.                         \1ST\BBS\<QWK-ID>\WELCOME.VOC
  1805.                         \1ST\MME\WELCOME.MME
  1806.                         \1ST\MME\WELCOME.MID
  1807.                         \1ST\MME\WELCOME.CMF
  1808.                         \1ST\MME\WELCOME.VOC
  1809.                         \1ST\WELCOME.MME
  1810.                         \1ST\WELCOME.MID
  1811.                         \1ST\WELCOME.CMF
  1812.                         \1ST\WELCOME.VOC
  1813.  
  1814.          1stReader will stop the search with the first filename it
  1815.          locates.  If the file is found 1stReader will play the file
  1816.          through your sound card.  This feature lets you tie sound
  1817.          files together with text files that are already displayed by
  1818.          1stReader.
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.                                     Page 24 
  1825.  
  1826.  
  1827.  
  1828.          Note that if the file you are displaying already includes an
  1829.          extension then 1stReader strips the extension from the
  1830.          filename and performs the same search.  For example, if the
  1831.          filename was WELCOME.TXT then 1stReader strips the ".TXT"
  1832.          from the filename and begins the search.
  1833.  
  1834.          This feature allows sysops to include .VOC files that are
  1835.          automatically played whenever a mail packet from their system
  1836.          is unpacked, or a bulletin is displayed....anything!
  1837.  
  1838.  
  1839.  
  1840.          .MME files
  1841.          ----------
  1842.          The ".MME" file extension is used by 1stReader to link other
  1843.          .VOC or .CMF files together into one sound 'stream'.  A .MME
  1844.          file is a text file that points to other .MID, .CMF  and/or
  1845.          .VOC files that are to be played in order by 1stReader.  An
  1846.          example of a .MME file might be:
  1847.  
  1848.                                 APPLAUSE.VOC
  1849.                                 WELCOME.VOC
  1850.                                 STARTREK.CMF
  1851.  
  1852.          If this file was called WELCOME.MME then when the WELCOME
  1853.          file is displayed by 1stReader it will read WELCOME.MME and
  1854.          then play, in order, APPLAUSE.VOC, WELCOME.VOC and
  1855.          STARTREK.CMF.  These three files can be located in the BBS
  1856.          subdirectory, inside the \1ST\MME subdirectory or in \1ST
  1857.          itself.
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.                                     Page 25 
  1887.  
  1888.  
  1889.  
  1890.          Special files
  1891.          -------------
  1892.  
  1893.          1stReader has reserved filenames for special features used
  1894.          throughout the reader.  As always, 1stReader looks for these
  1895.          files in the BBS subdirectory first, then the \1ST\MME
  1896.          subdirectory and finally in the \1ST subdirectory.  These
  1897.          files can use the .MME, .MID, .CMF or .VOC extensions
  1898.          depending upon your needs.
  1899.  
  1900.  
  1901.          $$ALARM
  1902.          -------
  1903.          Played whenever 1stReader connects to a bulletin board system
  1904.          or finishes a file transfer with the bulletin board.
  1905.  
  1906.  
  1907.          $$CHKPRT
  1908.          --------
  1909.          This file is played whenever you attempt to print text on
  1910.          your printer but your printer is not ready to print (either
  1911.          not connected, not turned ON or the printer is not ONLINE).
  1912.  
  1913.  
  1914.          $$EXIT
  1915.          ------
  1916.          Played when you exit 1stReader and return to DOS.
  1917.  
  1918.  
  1919.          $$H-<help_recnum>
  1920.          $$HELP
  1921.          -----------------
  1922.          $$HELP is played after the online help facility is used AND
  1923.          the user has not turned on the "Advanced Features" switch.
  1924.          1stReader will look to see if $$H-<help_recnum> is on file
  1925.          and if found, will play it before it plays $$HELP.
  1926.          <help_recnum> is the record number for that particular
  1927.          help function.
  1928.  
  1929.  
  1930.          $$INTRO
  1931.          -------
  1932.          Played at the start of 1stReader before you arrive the
  1933.          opening menu.
  1934.  
  1935.  
  1936.          \1ST\BBS\<confnum>
  1937.          ------------------
  1938.          This file lets a sysop tie a particular MME file to a
  1939.          conference on their system.  It is played whenever you join
  1940.          <confnum> in 1stReader.
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.                                     Page 26 
  1949.  
  1950.  
  1951.  
  1952.          NEWS
  1953.          NEWFILES
  1954.          SERVICES
  1955.          LEAVING
  1956.          --------
  1957.          These four MME files are played after a mail packet has been
  1958.          unpacked but before arriving at the "Read messages" menu.
  1959.          NEWS is played if a news bulletin is in the mail packet.
  1960.          NEWFILES is played if a list of new files has been included.
  1961.          SERVICES is played if services were included in the mail
  1962.          packet.  And finally, LEAVING is played when the user
  1963.          selects the "QUIT" button from the "Read messages" menu.
  1964.  
  1965.  
  1966.          $$TRANS
  1967.          -------
  1968.          This file is played after a file transfer has been completed.
  1969.          If $$TRANS.* is not on file then 1stReader will use $$ALARM
  1970.          instead.
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.                                     Page 27 
  2011.  
  2012.  
  2013.  
  2014.          The 1stReader Applications Program Interface (API)
  2015.          --------------------------------------------------
  2016.  
  2017.          The 1stReader API is designed to let third-party programmers
  2018.          have access to the internal information used by 1stReader.
  2019.  
  2020.          Power users will also find the API of interest.  That's
  2021.          because we have provided you with special functions that let
  2022.          you access the API from with batch files and 1stReader
  2023.          itself.  These functions are:
  2024.  
  2025.                  @API(xx)       Accesses the integer API entries.
  2026.                                 "xx" can be between 0 and 275.
  2027.  
  2028.                  @API&(xx)      Accesses the long integer API entries.
  2029.                                 "xx" can be between 0 and 10.
  2030.  
  2031.                  @API$(xx)      Accesses the API text entries.
  2032.                                 "xx" can be between 0 and 165.
  2033.  
  2034.                  @SWITCH(xx)    Accesses the setup switches.
  2035.                                 "xx" can be between 1 and 36
  2036.  
  2037.          The actual API values are listed below.  It is important to
  2038.          remember that 1stReader supports these (and ALL) @variable
  2039.          definitions in filespecs, text entries and descriptions.
  2040.          They come in VERY handy with the .CMD and .LST files.
  2041.  
  2042.          Here is a list of the 1stReader API entries.  If you have
  2043.          specific questions about any of these entries please leave us
  2044.          a message on our customer support system at (615) 230-8822.
  2045.  
  2046.  
  2047.                  1stReader Integer API table
  2048.          -------------------------------------------------------------
  2049.            1:    Text file (1STTEXT) file handle
  2050.            2:    Segment address of 1STTEXT (if loaded)
  2051.            3:    SCREENS file handle
  2052.            4:    Length of the DialDir entry
  2053.            5:    Phone Book file handle
  2054.            6:    Number of screens on file
  2055.            7:    Screen buffer segment address
  2056.            8:    Current screen number
  2057.            9:    Reader screen buffer
  2058.           10:    Does a mouse exist?
  2059.           11:    Mouse cursor state
  2060.           12:    Are we in ScrnEdit?
  2061.           13:    Last keyboard field entered
  2062.           14:    The user cannot access help from this location
  2063.           15:    Total number of systems on file
  2064.           16:    Current system record number
  2065.           17:    Are we inside QmSetup?
  2066.           18:    Are we inside ShowFile?
  2067.           19:    Qmail Door serial number
  2068.  
  2069.  
  2070.  
  2071.  
  2072.                                     Page 28 
  2073.  
  2074.  
  2075.  
  2076.           20:    Is the user a sysop?
  2077.           21:    Maximum number of lines per message
  2078.           22:    Number of conferences on file
  2079.           23:    Number of login names
  2080.           24:    Number of active conferences
  2081.           25:    File handle for MESSAGES.DAT
  2082.           26:    Current conference number
  2083.           27:    Current MIDI velocity value
  2084.           28:    Is music enabled for this display?
  2085.           29:    Is this display an ANSI ART display?
  2086.           30:    Last conference joined
  2087.           31:    Number of messages in conference
  2088.           32:    Current message number in conference
  2089.           33:    Number of lines in current message
  2090.           34:    Is this message an ANSI message?
  2091.           35:    Last message number loaded
  2092.           36:    Current line number in message
  2093.           37:    File handle for the replies file
  2094.           38:    A DosService call was made
  2095.           39:    Normal message text color
  2096.           40:    Quoted message text color
  2097.           41:    Search message text color
  2098.           42:    Current message file buffer
  2099.           43:    Was a bookmark read?
  2100.           44:    Is this message addressed to you?
  2101.           45:    Message type (1=Public, 2=Private, 3=Comment,
  2102.                  4=Sender, 5=Group)
  2103.           46:    Is the message read (1=Yes, 0=No)
  2104.           47:    Number of mouse traps in effect
  2105.           48:    Number of files downloaded in TERMINAL mode
  2106.           49:    Are we in batch mode using /CALL or /ONLYREPS?
  2107.           50:    File handle for zippy file search
  2108.           51:    Are we in color mode?
  2109.           52:    How many active keywords are there in the scan?
  2110.           53:    Is this message a USENET message?
  2111.           54:    Was F10 pressed?   (The action key)
  2112.           55:    Number of names in TWIT file
  2113.           56:    Reload the TWIT file?
  2114.           57:    Last conference joined since Zippy
  2115.           58:    File handle for folders
  2116.           59:    Are we in the initial IPL for the reader?
  2117.           60:    Stacked OPTION command (used when CTRL is pressed)
  2118.           61:    Are we currently inside QmListFile?
  2119.           62:    Was a packet found on startup in the work
  2120.                  subdirectory
  2121.           63:    Highest conference number
  2122.           64:    Last message line displayed at top in internal quoter
  2123.           65:    Number of messages tagged for archiving
  2124.           66:    If set then the message is not redisplayed
  2125.           67:    Number of files found in the mail packet
  2126.           68:    Direction of the QmScrnEdit field movement
  2127.           69:    File number for services.dat
  2128.           70:    Number of services on file
  2129.           71:    File handle number for the .QWK packet
  2130.  
  2131.  
  2132.  
  2133.  
  2134.                                     Page 29 
  2135.  
  2136.  
  2137.  
  2138.           72:    Number of new bulletins found
  2139.           73:    Packet number selected
  2140.           74:    Set for QmListConf
  2141.           75:    Display this message in ANSI
  2142.           76:    Button pressed in MouseRange()
  2143.           77:    Mouse button selected in MouseRange()
  2144.           78:    Number of messages in this packet
  2145.           79:    Have we initialized the modem?
  2146.           80:    Force carrier on modem?
  2147.           81:    The comm ABORT switch
  2148.           82:    Recycle to next call in queue
  2149.           83:    Echo received characters from comm port on screen?
  2150.           84:    Number of LOOK variables defined
  2151.           85:    Timeout value for comm routines
  2152.           86:    Is autoZmodem downloads enabled?
  2153.           87:    Are we in terminal mode?
  2154.           88:    Reload the current message?
  2155.           89:    Are we in the terminal program
  2156.           90:    Buffer position for comm routines
  2157.           91:    Was JH called?
  2158.           92:    IRQ number
  2159.           93:    Base address
  2160.           94:    Reading without a packet on file?
  2161.           95:    Flow control parameter
  2162.           96:    Is the comm port open?
  2163.           97:    FIFO buffer size
  2164.           98:    Are we now reading a packet?
  2165.           99:    Are we inside a script?
  2166.          100:    Is this message routed from PostLink?
  2167.          101:    Is this message routed from Usenet?
  2168.          102:    Is AutoExit in terminal enabled?
  2169.          103:    Are we inside the DOS SHELL (F6) handler?
  2170.          104:    Was /QWK: used?
  2171.          105:    Was /REP: used?
  2172.          106:    Are we inside the function menu routine?
  2173.          107:    Maximum number of messages per conference
  2174.          108:    Use "UN:" on this message?
  2175.          109:    Was this mail packet mangled by EZ-Reader?
  2176.          110:    Mixed case entry flag
  2177.          111:    Fido style taglines flag
  2178.          112:    Have mail headers been swapped out?
  2179.          113:    Current field number in screen
  2180.          114:    Are we inside the editor subroutine?
  2181.          115:    CONTROLTYPE = ADD found in DOOR.ID
  2182.          116:    Should ADD/DROP buttons be displayed?
  2183.          117:    Are we inside the DOOR setup routine?
  2184.          118:    Strip @X codes?
  2185.          119:    International date format (0=USA, 1=EUROPE, 2=JAPAN)
  2186.          120:    Is a message loaded?
  2187.          121:    Are we inside the QmListConfs routine?
  2188.          122:    Is Doorway mode turned on?
  2189.          123:    Was doorway mode turned on while executing a script?
  2190.          124:    Maximum number of lines in a reply
  2191.          125:    Were services included in this packet?
  2192.  
  2193.  
  2194.  
  2195.  
  2196.                                     Page 30 
  2197.  
  2198.  
  2199.  
  2200.          126:    Was KEYBOARD.$$$ read?
  2201.          127:    HELP.DAT handle
  2202.          128:    Help record file
  2203.          129:    If set then use 4DOS BTM files
  2204.          130:    Maximum possible number of messages allowed
  2205.          131:    Was HELP just called?
  2206.          132:    Last archive packet used
  2207.          133:    Number of Replace$() variables defined
  2208.          134:    Archiver used to unpack mail packet
  2209.          135:    Are we ordering 1stReader?
  2210.          136:    Was the last unpack operation successful?
  2211.          137:    Stop the pause in QmFileDisplay?
  2212.          138:    Size of 16550 FIFO stack (modified by 1st)
  2213.          139:    Are we inside help?
  2214.          140:    Is the user a Qmail Door owner?
  2215.          141:    Are we inside the internal editor?
  2216.          142:    Number of times TIMEOUT was hit in script
  2217.          143:    Number of times for TIMEOUT to hit before ABORTing
  2218.                  script
  2219.          144:    Capture buffer file number
  2220.          145:    Reload the message display screen?
  2221.          146:    Current serial port
  2222.          147:    Connect flag from $$DIAL.SCR
  2223.          148:    Is this a Blue Wave packet?
  2224.          149:    Is the user "NEW USER"?
  2225.          150:    0=TERMINAL, 1=CALL, 2=MAIL, 3=REPLY
  2226.          151:    Reserved
  2227.          152:    Reserved
  2228.          153:    Reserved
  2229.          154:    Is /MLIST used on the command line?
  2230.          155:    Fido tags turned on by @FIDO@?
  2231.          156:    Do not use $$DIAL.SCR
  2232.          157:    Reset the line input routine?
  2233.          158:    Use the disability switch?
  2234.          159:    Is DesqView active?
  2235.          160:    Screen buffer address
  2236.          161:    Did the last ANSI string contain a MUSIC string?
  2237.          162:    Number of lines in display for ANSIART message
  2238.          163:    Number of lines in display for ANSI file display
  2239.          164:    No Blink active?
  2240.          165:    Top of screen to protect in QmSetWindow
  2241.          166:    Left margin of screen to protect in QmSetWindow
  2242.          167:    Bottom of screen to protect in QmSetWindow
  2243.          168:    Right margin of screen to protect in QmSetWindow
  2244.          169:    Maximum number of lines in screen
  2245.          170:    Is this message larger than 200 lines?
  2246.          171:    Was this message already displayed as ANSI?
  2247.          172:    Last ROW used in virtual keyboard
  2248.          173:    Last COLUMN used in virtual keyboard
  2249.          174:    Can .VOC files be played by this system?
  2250.          175:    Can .MID and .CMF files be played by this system?
  2251.          176:    Abort all MME files in queue?
  2252.          177:    Always display messages in ANSI
  2253.          178:    Number of messages to be stored in EMS
  2254.  
  2255.  
  2256.  
  2257.  
  2258.                                     Page 31 
  2259.  
  2260.  
  2261.  
  2262.          179:    EMS handle for messages stored in array
  2263.          180:    Size of bookmark segment
  2264.          181:    Bookmark segment address
  2265.          182:    Noblink ANSI message
  2266.          183:    Number of lines in the display
  2267.          184:    Number of lines to protect in message display
  2268.          185:    Number of conferences in the first data segment
  2269.          186:    Number of conferences in the second data segment
  2270.          187:    Was ESC pressed to terminate the list of msgs
  2271.          188:    EMS handle for QmText (if loaded high)
  2272.          189:    Are we reading from the database?
  2273.          190:    Has we asked if this message should be displayed as
  2274.                  ANSI
  2275.          191:    Display mail packet names in packet screen.
  2276.          192:    Tearline in a message
  2277.          193:    Redial attempts
  2278.          194:    If set then on loss of carrier abort a redial.
  2279.          195:    Alias number used when saving a message
  2280.          196:    If true then NEWFILES.EXE is supported
  2281.          197:    Is the /SILENT switch used
  2282.          198:    Maximum length of UCode$()
  2283.          199:    If ON then do not act on $<command> in ANSI display
  2284.          200:    Draw the dialing box in terminal mode?
  2285.          201:    Are we in a DOS shell?
  2286.          202:    Number of ESC sequences in the current msg
  2287.          203:    DOS success flag
  2288.          204:    If set then do not perform a hangup during redials
  2289.          205:    Number of script files in the current CHAIN
  2290.          206:    Reserved
  2291.          207:    Reserved
  2292.          208:    If true we are calling for MAIL
  2293.          209:    Maximum number of taglines allowed
  2294.          210:    If TRUE then initialize API$(130-134)
  2295.          211:    If /SHOWDEL switch is turned ON
  2296.          212:    Number of messages to move forward to get to the next
  2297.                  message
  2298.          213:    Are we in the QmComm module?
  2299.          214:    Are we in the file manager module?
  2300.          215:    Are we editing a big file?
  2301.          216:    Is DEBUG turned on?
  2302.          217:    Is local ECHO turned on?
  2303.          218:    Sound Blaster support using CTVDSK?
  2304.          219:    Sound Blaster support using CMFDRV?
  2305.          220:    Dialing prefix number to use
  2306.          221:    If set then scan for MME files in subdirs
  2307.          222:    Were MME files found in API$(5)
  2308.          223:    Were MME files found in API$(28)
  2309.          224:    Were MME files found in API$(111)
  2310.          225:    Were MME files found in BBS directory?
  2311.          226:    File handle number for SERIAL.DBG
  2312.          227:    True if /ONLYREPS was used
  2313.          228:    Are we managing taglines?
  2314.          229:    Are we inside QmSetup()?
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.                                     Page 32 
  2321.  
  2322.  
  2323.  
  2324.          230:    Number of milliseconds to pause during an ANSI
  2325.                  position
  2326.          231:    Have we already tried to init the Sound Blaster?
  2327.          232:    Have we loaded a font?
  2328.          233:    Last interrupt number serviced
  2329.          234:    Returns the value of AL after an interrupt
  2330.          235:    Address of the API$() data segment
  2331.          236:    Address of the API$() data offset
  2332.          237:    Address of the API&() data segment
  2333.          238:    Address of the API&() data offset
  2334.          239:    Address of the CFG data segment
  2335.          240:    Address of the CFG data offset
  2336.          241:    Address of the DIALDIR data segment
  2337.          242:    Address of the DIALDIR data offset
  2338.          243:    Address of the Index() data segment
  2339.          244:    Address of the Index() data offset
  2340.          245:    Address of the CONF data segment
  2341.          246:    Address of the CONF data offset
  2342.          247:    Register pair AX returned after the interrupt
  2343.          248:    Register pair BX returned after the interrupt
  2344.          249:    Register pair CX returned after the interrupt
  2345.          250:    Register pair DX returned after the interrupt
  2346.          251:    Register pair SI returned after the interrupt
  2347.          252:    Register pair DI returned after the interrupt
  2348.          253:    Register pair DS returned after the interrupt
  2349.          254:    Register pair ES returned after the interrupt
  2350.          255:    Register pair SS returned after the interrupt
  2351.          256:    Register pair SP returned after the interrupt
  2352.          257:    Register Flags returned after the interrupt
  2353.          258:    Maximum number of lines per message
  2354.          259:    EMS handle for lines pointers stored in array
  2355.          260:    Scrollback segment address
  2356.          261:    Scrollback buffer size
  2357.          262:    Pointer into scrollback buffer
  2358.          263:    True if we are calling to order keyfile
  2359.          264:    Disable Desqview time slice
  2360.          265:    Modem redial delay
  2361.          266:    Enclosed file was found in the current message
  2362.  
  2363.  
  2364.  
  2365.  
  2366.                  1stReader Long Integer API table
  2367.          -------------------------------------------------------------
  2368.            0:    Serial number
  2369.            1:    Total number of records in MESSAGES.DAT
  2370.            2:    Total number of records in REPLY file
  2371.            3:    Beginning position of the bookmark inside the .QWK
  2372.            4:    Current baud rate
  2373.            5:    Last time a character was received in comm channel
  2374.            6:    Current message record number in MESSAGES.DAT
  2375.            7:    Total number of records in FOLDER
  2376.            8:    Highest message number in the base
  2377.            9:    CONNECT baud rate
  2378.  
  2379.  
  2380.  
  2381.  
  2382.                                     Page 33 
  2383.  
  2384.  
  2385.  
  2386.                  1stReader String API table
  2387.          -------------------------------------------------------------
  2388.            1:    Path to the packets subdirectory
  2389.            2:    Path to the download files subdirectory
  2390.            3:    Path to the programs files subdirectory
  2391.            4:    Path to the opening subdirectory
  2392.            5:    Path to the system subdirectory
  2393.            6:    Path to the reply packets subdirectory
  2394.            7:    Mail packet extension (Q*)
  2395.            8:    Reply packet extension (REP)
  2396.            9:    Mail packet filespec (No path)
  2397.           10:    Name of PACKET ID
  2398.           11:    Name of BBS
  2399.           12:    Mail packet name
  2400.           13:    Reply packet name
  2401.           14:    Path to BBS subdirectory
  2402.           15:    Path to the work subdirectory
  2403.           16:    Path to the replies subdirectory
  2404.           17:    Path to the services subdirectory
  2405.           18:    Path to the folders subdirectory
  2406.           19:    Last import file subdirectory
  2407.           20:    TWIT list filespec
  2408.           21:    Last folder filespec (no .FOL extension)
  2409.           22:    Current conference name
  2410.           23:    Name of the SERVICES.LST file
  2411.           24:    Last conference name
  2412.           25:    Release date
  2413.           26:    Suffix of the ID keyfile
  2414.           27:    Path to the .SET file
  2415.           28:    Path to the startup subdirectory
  2416.           29:    Path to the SYSTEM files subdirectory
  2417.           30:    Name of system
  2418.           31:    Telephone number
  2419.           32:    Sysop's name
  2420.           33:    Door ID
  2421.           34:    Date of packet
  2422.           35:    Time of packet
  2423.           36:    User's name
  2424.           37:    Second scan name
  2425.           38:    Third scan name
  2426.           39:    Name of system's phone book
  2427.           40:    Welcome filespec
  2428.           41:    BBS news filespec
  2429.           42:    Goodbye filespec
  2430.           43:    Quote name
  2431.           44:    Name of the bookmark file
  2432.           45:    CTRL sequences for OPTIONS
  2433.           46:    ALT translation string
  2434.           47:    Telephone number being dialed
  2435.           48:    Mail packet transfer protocol letter (defaults to
  2436.                  Zmodem)
  2437.           49:    Quote character
  2438.           50:    Full path to MESSAGES.DAT
  2439.           51:    Full path to the REPLY .MSG file
  2440.  
  2441.  
  2442.  
  2443.  
  2444.                                     Page 34 
  2445.  
  2446.  
  2447.  
  2448.           52:    Scan entry #1
  2449.           53:    Scan entry #2
  2450.           54:    Scan entry #3
  2451.           55:    Scan entry #4
  2452.           56:    PostLink routing site
  2453.           57:    Last directory viewed in reader menu
  2454.           58:    Path to the subdirectory being viewed in program
  2455.                  manager
  2456.           59:    Filespec currently selected in the program manager
  2457.           60:    Usenet Path
  2458.           61:    From
  2459.           62:    Newsgroups
  2460.           63:    Subject
  2461.           64:    Message ID
  2462.           65:    Date
  2463.           66:    References
  2464.           67:    Sender
  2465.           68:    Organization
  2466.           69:    Domain
  2467.           70:    Reply-To
  2468.           71:    To
  2469.           72:    Last color change issued by ANSI
  2470.           73:    Name of the USENET.ID file
  2471.           74:    User name in upper/lower case
  2472.           75:    User name in Usenet format
  2473.           76:    Comm port base address in HEX
  2474.           77:    String passed to program from DOS shell
  2475.           78:    String value present when QmEditor executed
  2476.           79:    Control name for door ADD/DROP
  2477.           80:    Name of the service file (no path or extension)
  2478.           81:    Last DOS command selected in QmMenu
  2479.           82:    Conference name (dots removed)
  2480.           83:    Current contents of the keyboard input buffer
  2481.           84:    Current conference name
  2482.           85:    Message number
  2483.           86:    Date
  2484.           87:    Time
  2485.           88:    Status
  2486.           89:    To
  2487.           90:    From
  2488.           91:    Subject
  2489.           92:    Refer
  2490.           93:    Reader
  2491.           94:    Serial number
  2492.           95:    Tagline
  2493.           96:    Actual PCB message header
  2494.           97:    Last color saved by @X00
  2495.           98:    Last highlight ANSI switch used
  2496.           99:    Fido Address (if any)
  2497.          100:    Current conference number
  2498.          101:    File request filespec
  2499.          102:    User's first name
  2500.          103:    Doorway ON string
  2501.          104:    Doorway OFF string
  2502.  
  2503.  
  2504.  
  2505.  
  2506.                                     Page 35 
  2507.  
  2508.  
  2509.  
  2510.          105:    PC Pursuit access number
  2511.          106:    PC Pursuit user ID
  2512.          107:    PC Pursuit password
  2513.          108:    PC Pursuit city ID
  2514.          109:    List of systems to call using /CALL or tagging
  2515.          110:    Linked script file
  2516.          111:    MME subdirectory
  2517.          112:    Log capture filespec
  2518.          113:    Name of reader for OEMS
  2519.          114:    Tagline entry
  2520.          115:    Date seperator
  2521.          116:    Temporary help file to pass
  2522.          117:    Path to the database subdirectory
  2523.          118:    Start time to call systems (using /CALL:)
  2524.          119:    Data to be replaced with "Ω" in the DOS shell
  2525.          120:    System IDs called in batch mode
  2526.          121:    Serial number of reader
  2527.          122:    Attached filename
  2528.          123:    Original script name
  2529.          124:    Last telephone number dialed
  2530.          125:    Swap filespec
  2531.          126:    Script file to execute BEFORE dialing phone number
  2532.          127:    Script file to execute AFTER dialing phone number
  2533.          128:    Modem dialing prefix #1
  2534.          129:    Attached filename on PCBoard
  2535.          130:    Full name of the $$1ST.LST file
  2536.          131:    Full name of the $$1ST.CMD file
  2537.          132:    Full name of the $$pp.LST file
  2538.          133:    Full name of the $$pp.CMD file
  2539.          134:    Name of conference .LST file
  2540.          135:    Name of conference .CMD file
  2541.          136:    Name of the .CFG file
  2542.          137:    Modem dialing prefix #2
  2543.          138:    Font filename
  2544.          139:    Command line used to start 1stReader
  2545.          140:    Last DOS command executed by 1stReader
  2546.          141:    Used if message is a return receipt from PCBoard
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.                                     Page 36 
  2569.  
  2570.  
  2571.  
  2572.          @Variables supported by 1stReader
  2573.          ---------------------------------
  2574.  
  2575.          This is a list of all @variables supported by 1stReader.  You
  2576.          may use these variables in any file, script, .CMD, or .LST
  2577.          file.
  2578.  
  2579.             Variable                 Description
  2580.             -------------------      ---------------------------------
  2581.             @CLREOL@                 Clears display to the end of line
  2582.             @DATE@                   Current system date
  2583.             @SYSDATE@                Current system date
  2584.             @TIME@                   Current system time
  2585.             @SYSTIME@                Current system time
  2586.             @TO@                     Message "TO" field
  2587.             @FROM@                   Message "FROM" field
  2588.             @SUBJECT@                Message "SUBJECT" field
  2589.             @GOODNAME@               Your name in upper/lower case
  2590.             @USENETNAME@             Your name in Usenet "." format
  2591.             @EDIT@                   DOS editor command
  2592.             @LIST@                   DOS list command
  2593.             @ORIGINAL@               Original message filespec
  2594.             @REPLY@                  Reply message filespec
  2595.             @BBSID@                  Qmail Door packet ID
  2596.             @MEMORY@                 Free memory available in 1st
  2597.             @VERSION@                1stReader release edition
  2598.             @PHONE@                  Telephone of the BBS
  2599.             @CONF@                   Current conference name
  2600.             @CONF2@                  Current conference (underscored)
  2601.             @FILEDIR@                files subdirectory
  2602.             @FIRST@                  First name (from BBS login field)
  2603.             @COMPORT@                Serial port entry in SETUP/COMM
  2604.             @DAY@                    Today's name (Mon, Tue, etc.)
  2605.             @POS:nn@                 Tabs to column "nn" (one per line
  2606.                                      only)
  2607.  
  2608.             @API$(xxx)               This variable reads the 1stReader
  2609.                                      API string table and is replaced
  2610.                                      with the current value.
  2611.  
  2612.             @API(xxx)                This variable reads the 1stReader
  2613.                                      API integer table and is replaced
  2614.                                      with the current value.
  2615.  
  2616.             @API&(xxx)               This variable reads the 1stReader
  2617.                                      API long integer table and is
  2618.                                      replaced with the current value.
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.                                     Page 37 
  2631.  
  2632.  
  2633.  
  2634.             @SWITCH(xx)              This variable reads the 1stReader
  2635.                                      switches table.  If the switch is
  2636.                                      turned ON then a "-1" is
  2637.                                      returned.  Otherwise, a "0" is
  2638.                                      returned.  See the "SWITCH"
  2639.                                      script function for a complete
  2640.                                      list of switch numbers.
  2641.  
  2642.             @REPLACE(xx)             At times 1stReader will pass
  2643.                                      arguments to batch files using
  2644.                                      '%1', '%2' or '%3'.  You can
  2645.                                      call these replacement variables
  2646.                                      directly if you wish.
  2647.  
  2648.          These @variables are available if you are reading a message
  2649.          from a 'Usenet' conference:
  2650.  
  2651.             @U-PATH@                 'Path' line in message
  2652.             @U-FROM@                 'From' line in message
  2653.             @U-NEWSGROUPS@           'Newsgroups' line in message
  2654.             @U-SUBJECT@              'Subject' line in message
  2655.             @U-MESSAGE-ID@           'Message-ID' line in message
  2656.             @U-DATE@                 'Date' line in message
  2657.             @U-REFERENCES@           'References' line in message
  2658.             @U-SENDER@               'Sender' line in message
  2659.             @U-ORGANIZATION@         'Organization' line in message
  2660.             @U-DOMAIN@               'Domain' line in message
  2661.             @U-REPLY-TO@             'Reply-To' line in message
  2662.  
  2663.          1stReader will also substitute any DOS environment variables
  2664.          by enclosing them in "%" characters.  For example, %PATH%
  2665.          would be replaced with the DOS path from your environment.
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.                                     Page 38 
  2693.  
  2694.  
  2695.  
  2696.          1stReader script language
  2697.          -------------------------
  2698.  
  2699.          Script commands are in FULL CAPITAL letters.  Required values
  2700.          are enclosed in <arrows> and optional values are enclosed in
  2701.          [brackets].  Of course, do not include these characters in
  2702.          the actual command.
  2703.  
  2704.          Sometimes command parameters will be enclosed by quotation
  2705.          marks.  If present in the command description then these
  2706.          quotation marks are required in the actual command line.
  2707.  
  2708.  
  2709.          @API$(xxx)="value"                            Type: command
  2710.          @API&(xxx)=value
  2711.          @API(xxx)=value
  2712.          @SWITCH(xxx)=value
  2713.  
  2714.          These commands let the scripts modify the 1stReader API.  See
  2715.          the API definition list to determine the correct value for
  2716.          "xxx" for each variable.
  2717.  
  2718.  
  2719.          ABORT <value>                                 Type: command
  2720.  
  2721.          The ABORT command works with the TIMEOUT command to determine
  2722.          how many carriage returns must be sent (without a response
  2723.          back from the BBS) before 1stReader declares the script to be
  2724.          'locked up'.  If the number of carriage returns transmitted
  2725.          exceed <value> then the script is aborted by 1stReader.
  2726.  
  2727.  
  2728.  
  2729.          API <value>                                   Type: function
  2730.  
  2731.          The API function reads the integer API table for entry
  2732.          <value>.  Some API values are flags that can be tested for ON
  2733.          or OFF conditions.  This function lets you conduct those
  2734.          tests.
  2735.  
  2736.  
  2737.          AUTOEXIT <on|off>                             Type: command
  2738.  
  2739.          The AUTOEXIT command controls how 1stReader will exit out of
  2740.          the TERMINAL mode.  If AUTOEXIT ON is set then if carrier is
  2741.          lost while the user is in terminal mode, 1stReader will exit
  2742.          the script.  AUTOEXIT OFF causes 1stReader to stay in the
  2743.          terminal mode until the user presses ALT+X to exit.
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.                                     Page 39 
  2755.  
  2756.  
  2757.  
  2758.          BREAK [value]                                 Type: command
  2759.  
  2760.          Sends a TRUE break signal to the host computer.  [value] is
  2761.          the number of 18ths of a second to hold the break signal.
  2762.          If [value] is omitted then 1stReader uses 18 as a default.
  2763.  
  2764.  
  2765.          CALL <script file> [label]                    Type: command
  2766.  
  2767.          The CALL script command lets you call another script file
  2768.          and then when the script exits control returns back to the
  2769.          original script that was running.  This command helps
  2770.          modularize script functions without having a maze of GOTOs
  2771.          to get back to the original script.
  2772.  
  2773.          You can specify a label to start execution of <script file>
  2774.          by adding it to the CALL command.
  2775.  
  2776.  
  2777.          CAPTURE <on|off>                              Type: command
  2778.  
  2779.          The CAPTURE command will open a file named <BBSID>.CAP in the
  2780.          1stReader system subdirectory.  This file will capture the
  2781.          screens displayed by 1stReader so you can review it later.
  2782.          If the capture file is left open when a script terminates
  2783.          then 1stReader will close the capture file automatically.
  2784.  
  2785.  
  2786.          CHECKTIME(hh:mm,hh:mm)                        Type: function
  2787.  
  2788.          CHECKTIME accepts two times (in military format).  The first
  2789.          "hh:mm" represents the START time to check and the last
  2790.          "hh:mm" represents the END time to check.  If the current
  2791.          time IS BETWEEN these two values then this function is set to
  2792.          TRUE.  Otherwise, the function returns FALSE.
  2793.  
  2794.  
  2795.          CLS                                           Type: command
  2796.  
  2797.          The CLS command will clear the screen and set the cursor to
  2798.          the top of the screen.
  2799.  
  2800.  
  2801.          COMMENT "string"                              Type: command
  2802.  
  2803.          This command lets you display a comment on the screen in the
  2804.          area setup below the LOCKLINE value.
  2805.  
  2806.  
  2807.          COUNT <qwk|rep>                               Type: command
  2808.  
  2809.          The COUNT command increments the number of QWK mail packets
  2810.          received and the number of REP mail packets uploaded to the
  2811.          bulletin board system.
  2812.  
  2813.  
  2814.  
  2815.  
  2816.                                     Page 40 
  2817.  
  2818.  
  2819.  
  2820.          DEBUG                                         Type: function
  2821.  
  2822.          The DEBUG function lets you test to see if DEBUG SCRIPTS
  2823.          (switch #18) has been turned on by the user.  You could use
  2824.          the SWITCH function to test for this condition but the DEBUG
  2825.          function provides better script readability.
  2826.  
  2827.  
  2828.          DISCONNECT <baud rate>                        Type: command
  2829.  
  2830.          Some systems you may call have high speed and low speed
  2831.          lines.  You might try to connect to a node capable of 38400
  2832.          baud but since all high speed nodes are busy you end up
  2833.          connect to a 2400 baud node.  Obviously, if you are using
  2834.          1stReader in the middle of the night on automatic you do not
  2835.          want to make a full mail run at the lower speed.
  2836.  
  2837.          The DISCONNECT <baud rate> command tells 1stReader that if
  2838.          you connect at speeds lower than <baud rate> to disconnect
  2839.          from the system.  Example:
  2840.  
  2841.                       IF DISCONNECT 9600 THEN GOTO LOGOFF
  2842.  
  2843.          If you connected to the system at less than 9600 baud then
  2844.          control is sent to the LOGOFF label.
  2845.  
  2846.  
  2847.          DOWNLOAD <filespec>                           Type: command
  2848.  
  2849.          The DOWNLOAD command will download <filespec> using the
  2850.          Zmodem file transfer protocol.
  2851.  
  2852.  
  2853.          EDIT <filespec>                               Type: command
  2854.  
  2855.          The EDIT command lets you edit <filespec> from inside a
  2856.          script.  If <filespec> does not exist it will be created for
  2857.          you.
  2858.  
  2859.  
  2860.          EXIT                                          Type: command
  2861.  
  2862.          The EXIT command will immediately disconnect the BBS and exit
  2863.          the script.  You should use it if you wish to exit a script
  2864.          without waiting for the BBS to disconnect from you.
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.                                     Page 41 
  2879.  
  2880.  
  2881.  
  2882.          FLAG <filespec> <byte_num>                    Type: function
  2883.  
  2884.          This script function is intended to use <filespec> as a set
  2885.          of external 'semaphores' for scripts.  You can use this
  2886.          function to check the value of <byte_num> in <filespec>.  If
  2887.          the value of <byte num> is ZERO then FLAG returns a FALSE
  2888.          condition, otherwise it returns TRUE.  You can use this
  2889.          function in a IF THEN statement to branch depending if a
  2890.          semaphore is turned on or not.
  2891.  
  2892.  
  2893.          FOUND=<value>                                 Type: function
  2894.  
  2895.          The FOUND function returns which prompt string was found
  2896.          using a WAITFOR command.  If a WAITFOR command uses multiple
  2897.          target prompts (example: WAITFOR "Yes|No") the FOUND=
  2898.          function will return a value of "1" if "Yes" was found or "2"
  2899.          if "No" was found.
  2900.  
  2901.  
  2902.          GOSUB <label>                                 Type: command
  2903.  
  2904.          The GOSUB command lets you call a subroutine in your script
  2905.          that is located at <label>.  You can nest up to 20 GOSUB
  2906.          calls in one script.
  2907.  
  2908.  
  2909.          GOTO <label>                                  Type: command
  2910.  
  2911.          The GOTO command transfers flow of the script to <label>.  A
  2912.          label always starts with a colon and is one word long on a
  2913.          line by itself.  Up to 100 labels may be defined in a script.
  2914.  
  2915.  
  2916.          HANGUP                                        Type: command
  2917.  
  2918.          The HANGUP command will immediately terminate the connection
  2919.          to the remote BBS.
  2920.  
  2921.  
  2922.          HELP <number>                                 Type: command
  2923.  
  2924.          The HELP command displays the online help available from
  2925.          inside 1stReader's HELP files.  See the list of HELP
  2926.          functions for more information.
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.                                     Page 42 
  2941.  
  2942.  
  2943.  
  2944.          IF ......                                    Type: statement
  2945.  
  2946.          You may use the IF statement to test for various conditions
  2947.          and execute a command based on the results.  The syntax of
  2948.          the IF statement is:
  2949.  
  2950.                               IF <function> THEN <command>
  2951.  
  2952.          You may use any <function> defined in the script language and
  2953.          combine it with any <command> as the object of the IF
  2954.          statement.
  2955.  
  2956.          1stReader also provides for a NOT modifier so you can test if
  2957.          a particular function is not true.  The NOT statement must
  2958.          come before the <function>.  The syntax of the IF statement
  2959.          using a NOT modifier is:
  2960.  
  2961.                            IF NOT <function> <command>
  2962.  
  2963.  
  2964.          KEYSTROKE=<value>                             Type: function
  2965.  
  2966.          This function returns the ASCII value of the keystroke given
  2967.          to the last PAUSE command.  If a lower case character was
  2968.          pressed then 1stReader automatically converts it to upper
  2969.          case for you.
  2970.  
  2971.                  Example:
  2972.  
  2973.                  PAUSE
  2974.                  IF KEYSTROKE=13 ....          ' Enter was pressed
  2975.                  IF KEYSTROKE=27 ....          ' ESC key was pressed
  2976.                  IF KEYSTROKE=32 ....          ' Space bar pressed
  2977.  
  2978.  
  2979.          KILL <filespec>                               Type: command
  2980.  
  2981.          The KILL command will erase <filespec> from the drive.
  2982.  
  2983.  
  2984.          LIST <filespec>                               Type: command
  2985.  
  2986.          The LIST command will display a text file using the internal
  2987.          file lister.  The difference between the SHOW and LIST
  2988.          commands is that the SHOW command loads the text into memory
  2989.          and displays it using the help screen while LIST will display
  2990.          any size file using the internal list routines.
  2991.  
  2992.  
  2993.          LOCATE <row>,<column>                         Type: command
  2994.  
  2995.          The LOCATE command locates the cursor at <row>,<column> on
  2996.          the screen.  You can use this command to position the cursor
  2997.          just before a PRINT statement to position text on the screen.
  2998.  
  2999.  
  3000.  
  3001.  
  3002.                                     Page 43 
  3003.  
  3004.  
  3005.  
  3006.          LOCKLINE <row> <attribute>                    Type: command
  3007.  
  3008.          The LOCKLINE command lets you allocate a section of the
  3009.          screen for COMMENTs from the script file.  <row> is the row
  3010.          number on the screen (rows 1 through 24) to "lock" so
  3011.          comments may be printed below it.  In other words, <row> is
  3012.          the last row that information received from the BBS is
  3013.          displayed.  Immediately after <row> a line is drawn by
  3014.          1stReader.  <attribute> is the color attribute value that is
  3015.          used to paint the remaining rows underneath the solid line.
  3016.  
  3017.  
  3018.          LOOKFOR "prompt string" "transmit string"     Type: command
  3019.  
  3020.          The LOOKFOR command is used to scan incoming data for "prompt
  3021.          string" and if found, transmit "transmit string".  If you
  3022.          wish to remove a LOOKFOR command that is already in place use
  3023.          the syntax LOOKFOR "prompt string" "".  The null string in
  3024.          place of the "transmit string" tells 1stReader to remove the
  3025.          LOOKFOR command.  Remember, the "prompt string" must match
  3026.          the original string.  Up to 10 LOOKFORs may be active at any
  3027.          one time.
  3028.  
  3029.          You can also use the LOOKFOR statement "@HANGUP@" to have
  3030.          a script automatically terminated if a particular string
  3031.          is found.  Example:  LOOKFOR "search string" "@HANGUP@"
  3032.  
  3033.  
  3034.          MME <filespec>                                Type: command
  3035.  
  3036.          The MME command lets your scripts play .VOC, .CMF or .MME
  3037.          files through a Sound Blaster (or compatible) card.  The
  3038.          Multimedia switch must be turned on in SETUP/SWITCHES in
  3039.          order to play <filespec>.
  3040.  
  3041.  
  3042.          NEWFILES <ON|OFF>                             Type: command
  3043.  
  3044.          The NEWFILES command tells 1stReader that the bulletin board
  3045.          system can use the NEWFILES.EXE program to display the list
  3046.          of new files.  Otherwise, new files lists are displayed
  3047.          internally by the reader.
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.                                     Page 44 
  3065.  
  3066.  
  3067.  
  3068.          NEW_PASSWORD                                  Type: command
  3069.  
  3070.          NEW_PASSWORD will generate a new password your user account
  3071.          that is eight characters of random letters.  This command
  3072.          is used together with the SET_PASSWORD command to create a
  3073.          new password your bulletin board login account.  Some systems
  3074.          (PCBoard 15.0 for example) can force you to change your
  3075.          password at different times.  These two script commands let
  3076.          1stReader changes your password for you automatically.
  3077.  
  3078.          The new password is assigned to the @PASSWORD@ variable.
  3079.  
  3080.  
  3081.          PAUSE [seconds]                               Type: command
  3082.  
  3083.          The PAUSE command will pause execution of the script for
  3084.          [seconds].  If you do not use a [seconds] argument then the
  3085.          script will pause until you press any key.
  3086.  
  3087.  
  3088.          PLAY "string"                                 Type: command
  3089.  
  3090.          This command will play the ANSI music enclosed in "string"
  3091.          through the PC's internal speaker (if the MUSIC switch has
  3092.          been turned ON).
  3093.  
  3094.  
  3095.          PROMPT <text>                                 Type: command
  3096.  
  3097.          This script command will display a boxed prompt for two
  3098.          seconds in the middle of the screen containing <text>.
  3099.  
  3100.  
  3101.          REQ_FILE <filespec> <conference>              Type: command
  3102.  
  3103.          The REQ_FILE command will let a script add a file request to
  3104.          the current file request list.  <filespec> is the name of
  3105.          the file to download and <conference> is the conference
  3106.          number where the file can be found.
  3107.  
  3108.  
  3109.          REQ_SETFILE <filespec>                        Type: command
  3110.  
  3111.          This command tells 1stReader to read <filespec> to find
  3112.          files requested from the NEWFILES.EXE program.
  3113.  
  3114.  
  3115.          REQ_NEXT                                      Type: command
  3116.  
  3117.          REQ_NEXT reads <filespec> (used by REQ_SETFILE) to find the
  3118.          next file request in <filespec>.  You can find out if a file
  3119.          was found by REQ_NEXT by using the REQ_DONE function.
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.                                     Page 45 
  3127.  
  3128.  
  3129.  
  3130.          REQ_DONE                                      Type: function
  3131.  
  3132.          This function is set to TRUE if 1stReader cannot locate a
  3133.          file request in the file set by REQ_SETFILE.  Use this
  3134.          function in a IF-THEN statement to stop reading the file.
  3135.  
  3136.  
  3137.          REQ_CONF                                      Type: function
  3138.  
  3139.          This function is set to the conference number that contains
  3140.          the next file to download.  If REQ_CONF is set to ZERO then
  3141.          the next file is located in the current subdirectory.
  3142.  
  3143.  
  3144.          REQ_SET                                       Type: command
  3145.  
  3146.          The REQ_SET command will set a flag in <filespec> that tells
  3147.          1stReader that @REQ_FILE@ has been downloaded successfully.
  3148.  
  3149.  
  3150.          REPLIES                                       Type: function
  3151.  
  3152.          The REPLIES function will check to see if a @BBSID@.REP file
  3153.          exists in the packets subdirectory.  Use this function with
  3154.          an IF statement to determine if replies are on file and
  3155.          should be uploaded.
  3156.  
  3157.  
  3158.          RETURN [label]                                Type: command
  3159.  
  3160.          The RETURN command returns execution of the 1stReader script
  3161.          to the next command after the calling GOSUB command.  If you
  3162.          include the optional [label] then execution resumes at the
  3163.          statement following the label.
  3164.  
  3165.  
  3166.          RUN <script filespec> [label]                 Type: command
  3167.  
  3168.          The RUN command lets you load a new script into 1stReader.
  3169.          If you include the optional [label] then execution will begin
  3170.          at the label.
  3171.  
  3172.  
  3173.          SET_FLAG <filespec> <byte_num> <ON|OFF>       Type: command
  3174.  
  3175.          This script command compliments the FLAG function described
  3176.          earlier, except this command will either turn the byte
  3177.          <byte_num> located in <filespec> to ZERO (for OFF) or to ONE
  3178.          (for ON).  You can use this command to set a flag in an
  3179.          external file so scripts can branch depending on the value
  3180.          of <byte_num>.
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.                                     Page 46 
  3189.  
  3190.  
  3191.  
  3192.          SET_PASSWORD                                  Type: command
  3193.  
  3194.          This command is to be used along with the NEW_PASSWORD
  3195.          command to generate a new password for your login account.
  3196.          The SET_PASSWORD command writes the new password created by
  3197.          the reader to your dialing directory entry.  Otherwise, the
  3198.          password would NOT be saved by 1stReader.
  3199.  
  3200.  
  3201.          SHOW <filespec>                               Type: command
  3202.  
  3203.          The SHOW command will display a short text file on the
  3204.          screen.  The difference between the SHOW and LIST commands is
  3205.          that the SHOW command loads the text into memory and displays
  3206.          it using the help screen while LIST will display any size
  3207.          file using the internal list routines.
  3208.  
  3209.  
  3210.          SWITCH <value>                                Type: function
  3211.  
  3212.          The SWITCH function lets you query the 1stReader switch
  3213.          settings.  You can then use an IF statement to take action
  3214.          based on the way a particular switch is set.  <value>
  3215.          corresponds to the following table:
  3216.  
  3217.  
  3218.                       Value     Switch description
  3219.                       -----     ------------------
  3220.                         1       Advanced features
  3221.                         2       Use bookmarks
  3222.                         3       External editor
  3223.                         4       Color monitor
  3224.                         5       Sound
  3225.                         6       Auto list messages
  3226.                         7       Sort systems
  3227.                         8       Random taglines
  3228.                         9       Music
  3229.                        10       MultiMedia
  3230.                        11       Use mouse
  3231.                        12       Auto position mouse
  3232.                        13       FIDO taglines
  3233.                        14       Use DTR to hangup
  3234.                        15       PostLink routing
  3235.                        16       Load 1STTEXT
  3236.                        17       Top of form on printer
  3237.                        18       Debug scripts
  3238.                        19       Log calls
  3239.                        20       Save new file lists
  3240.                        21       SuperShell to DISK
  3241.                        22       SuperShell to EMS
  3242.                        23       Skip messages you have read
  3243.                        24       Terminal alarms
  3244.                        25       Sort conferences
  3245.                        26       Large message screen
  3246.  
  3247.  
  3248.  
  3249.  
  3250.                                     Page 47 
  3251.  
  3252.  
  3253.  
  3254.                        27       Using 4DOS
  3255.                        28       Lock serial port
  3256.                        29       Auto alias
  3257.                        30       Show packet names
  3258.                        31       Trim quotes
  3259.                        32       Disable ANSI messages
  3260.                        33       Quick scan messages
  3261.                        34       Clear input fields
  3262.                        35       Ask on ANSI messages
  3263.                        36       Skip messages from you
  3264.  
  3265.          Remember you may use the IF NOT condition to see if a
  3266.          particular switch has been turned OFF.
  3267.  
  3268.  
  3269.          TERMINAL                                      Type: command
  3270.  
  3271.          The TERMINAL command does not have any arguments.  It will
  3272.          send the user into an immediate terminal mode.  To exit the
  3273.          terminal mode and return to the script press ALT+X.
  3274.  
  3275.  
  3276.          TERSE                                         Type: command
  3277.  
  3278.          This script command has no parameters...it is used to switch
  3279.          PCBoard systems from the standard 'text' display mode to a
  3280.          'terse' display mode.  This makes it possible for 1stReader
  3281.          scripts to be 'language independent' and work on all PCBoard
  3282.          systems.  The price you pay is that you also give up seeing
  3283.          the normal text prompts and instead see only  TXTnnn
  3284.          prompts.
  3285.  
  3286.  
  3287.          TRANSMIT "string"                             Type: command
  3288.  
  3289.          The TRANSMIT command will transmit "string" to the remote
  3290.          system.
  3291.  
  3292.  
  3293.          TRANSMIT; "string"                            Type: command
  3294.  
  3295.          This command works just like the TRANSMIT command except that
  3296.          any embedded spaces are converted into semi-colons.  For
  3297.          example, TRANSMIT; "Mark Herring" would be converted into
  3298.          "Mark;Herring".  This command can be used to log into systems
  3299.          that require semi-colons for a single-line login.
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.                                     Page 48 
  3313.  
  3314.  
  3315.  
  3316.          TIMEOUT <seconds>                             Type: command
  3317.  
  3318.          The TIMEOUT command sets the number of seconds that must pass
  3319.          without receiving data from the remote system before the
  3320.          reader will transmit a carriage return.  This command is used
  3321.          to catch situations where you might be sitting at the
  3322.          "Command?" prompt on PCBoard yet the script may not catch it.
  3323.          If you wish to disable the TIMEOUT completely use a value of
  3324.          0 seconds.
  3325.  
  3326.  
  3327.          UPLOAD <filespec>                             Type: command
  3328.  
  3329.          The UPLOAD command will upload <filespec> using the Zmodem
  3330.          file transfer protocol.
  3331.  
  3332.  
  3333.          WAITFOR "prompt string" [seconds]             Type: command
  3334.  
  3335.          The WAITFOR command scans incoming text for "prompt string".
  3336.          When "prompt string" has been found execution of the script
  3337.          continues.  [seconds] is an optional value that can be added
  3338.          to the command so that WAITFOR only waits for [seconds] for
  3339.          "prompt string" to be found.  If [seconds] pass with or
  3340.          without finding "prompt string" execution of the script
  3341.          continues.
  3342.  
  3343.          You can scan for more than one value by separating the values
  3344.          using "|" bar characters.  For example, WAITFOR "Yes|No"
  3345.          would wait for either "Yes" or "No" to be received.  You can
  3346.          later test which value was received by using the FOUND=
  3347.          function.
  3348.  
  3349.  
  3350.          WEEKDAY                                       Type: function
  3351.  
  3352.          The WEEKDAY function returns the day of the week in numeric
  3353.          form.  Sunday=1, Monday=2, Tuesday=3, Wednesday=4,
  3354.          Thursday=5, Friday=6, Saturday=7.  You can use this function
  3355.          with the IF function to find out which day of the week today
  3356.          falls upon.
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.                                     Page 49 
  3375.  
  3376.  
  3377.  
  3378.          Special @variables
  3379.  
  3380.          1stReader maintains special @variables that can be used by
  3381.          scripts.  Here is a list of variables supported:
  3382.  
  3383.  
  3384.             @BBSNAME@               The name of the BBS.
  3385.  
  3386.             @USER@                  The name of the LOGIN field in the
  3387.                                     BBS record.
  3388.  
  3389.             @PASSWORD@              The password field in the BBS
  3390.                                     record.
  3391.  
  3392.             @SYSTEMDIR@             Location of the 1stReader system
  3393.                                     subdirectory.
  3394.  
  3395.             @PACKETDIR@             Location of the mail packet
  3396.                                     subdirectory.
  3397.  
  3398.             @DLDIR@                 Location of the file download
  3399.                                     subdirectory.
  3400.  
  3401.             @REPDIR@                Location of the replies
  3402.                                     subdirectory.
  3403.  
  3404.             @PROGDIR@               Location of the PROGRAMS
  3405.                                     subdirectory.
  3406.  
  3407.             @LANGAUGE@              The language version field from
  3408.                                     the BBS record.  If the language
  3409.                                     value is set to "0" then this
  3410.                                     variable will be set to blank.
  3411.  
  3412.             @QMAIL@                 This variable is set to the name
  3413.                                     of the door command for the
  3414.                                     BBS.
  3415.  
  3416.             @COMMAND@               This variable will check to see if
  3417.                                     a reply packet is available for
  3418.                                     uploading.  If a packet is found
  3419.                                     then "U;D" is assigned to the
  3420.                                     variable.  Otherwise, "D" is
  3421.                                     assigned.
  3422.  
  3423.             @CONFERENCE@            The conference number field from
  3424.                                     the BBS record.  This value is
  3425.                                     used to join a conference before
  3426.                                     calling the mail door if it is to
  3427.                                     be called from another conference.
  3428.  
  3429.             @DATE@                  Replaced with today's date.
  3430.  
  3431.             @TIME@                  Replaced with the current time.
  3432.  
  3433.  
  3434.  
  3435.  
  3436.                                     Page 50 
  3437.  
  3438.  
  3439.  
  3440.             @GRAPHICS@              Set to "Y" if you have enabled
  3441.                                     graphics for this BBS.  Otherwise,
  3442.                                     it is set to "N".
  3443.  
  3444.             @FIRST@                 Set to the user's FIRST name.
  3445.  
  3446.             @REQ_FILE@              Filespec read from the file
  3447.                                     request file set by REQ_SETFILE
  3448.                                     command.
  3449.  
  3450.  
  3451.  
  3452.          Special characters
  3453.          ------------------
  3454.  
  3455.          1stReader interprets two special characters for values.  The
  3456.          first character is a carat "^".  1stReader will convert the
  3457.          next character, if alphabetical, into a CONTROL sequence.
  3458.          For example, "^G" will ring a bell or "^M" is a carriage
  3459.          return.
  3460.  
  3461.          You can also use "X'" to convert any hexadecimal value into a
  3462.          single character.  For example, "X'1B" converts into the ESC
  3463.          character.
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.                                     Page 51 
  3499.  
  3500.  
  3501.  
  3502.          Hints and Tips
  3503.          --------------
  3504.          This section contains 1stReader features and hints that do
  3505.          not necessarily fit into any of the other areas discussed
  3506.          earlier.
  3507.  
  3508.  
  3509.  
  3510.          Support for .BIN and .B1N files
  3511.          -------------------------------
  3512.  
  3513.          1stReader can display .BIN files created by THEDRAW.  1st
  3514.          also supports what we call ".B1N" (Bee One Enn) files.  A
  3515.          .B1N file contains TWO .BIN files copied together.  The first
  3516.          4000 bytes of the file (or the first .BIN file) is a
  3517.          monochrome version of the screen display.  The second
  3518.          4000 bytes (or the second .BIN file) contains the color
  3519.          version.  You can create a .B1N file by creating two .BIN
  3520.          files inside THEDRAW and then copying them together at the
  3521.          DOS command prompt, like this:
  3522.  
  3523.                          COPY TEST.B1N+MONO.BIN+COLOR.BIN
  3524.  
  3525.          1stReader displays the monochrome version of the file if the
  3526.          color display switch is turned OFF.  Otherwise, the color
  3527.          version of the file is displayed.
  3528.  
  3529.          1stReader will find .BIN and .B1N files when looking for
  3530.          $$CALL files.  The order of the search is:
  3531.  
  3532.                                      .ASC
  3533.                                      .ANS
  3534.                                      .B1N
  3535.                                      .BIN
  3536.  
  3537.  
  3538.  
  3539.          The WELCOME file
  3540.          ----------------
  3541.  
  3542.          When you startup 1stReader it will look for a file named
  3543.          WELCOME in the system subdirectory.  This can be a customized
  3544.          file created by the user.  WELCOME.ASC, WELCOME.ANS,
  3545.          WELCOME.B1N, WELCOME.BIN and WELCOME.GIF are supported.
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.                                     Page 52 
  3561.  
  3562.  
  3563.  
  3564.          Using KEYBOARD.$$$ from the internal editor
  3565.          -------------------------------------------
  3566.  
  3567.          If you shell to a program while inside 1stReader's internal
  3568.          editor and KEYBOARD.$$$ is created, then KEYBOARD.$$$ is
  3569.          pasted into the text at the current cursor location when
  3570.          control returns to 1stReader.
  3571.  
  3572.          This feature lets third-party developers create "Usenet
  3573.          address books" so they can pass back Usenet addresses into
  3574.          replies.  Of course, there can be hundreds of uses for this
  3575.          feature too.
  3576.  
  3577.  
  3578.  
  3579.          Pre-Print and Post-Print strings
  3580.          --------------------------------
  3581.  
  3582.          You can add pre- and post-printing initialization strings to
  3583.          1stReader by using our 1STTEXT.EXE editing program.  This
  3584.          program, which is available on our customer support system
  3585.          (you can use our DLXTEXT.EXE program too) lets you edit the
  3586.          1STTEXT file.
  3587.  
  3588.          Record #282 is reserved for any printer initialization string
  3589.          you require.  Record #283 is reserved for any post-printing
  3590.          string you require.  If you need to send more than 78
  3591.          characters to the printer you can tell 1stReader to read the
  3592.          characters from a file.  Use "FILE=<filespec>" in record
  3593.          #282/#283 and 1stReader will read <filespec> for the strings.
  3594.  
  3595.  
  3596.  
  3597.          Printer definition
  3598.          ------------------
  3599.  
  3600.          Record #273 in 1STTEXT is used to declare the name of the
  3601.          printer on your system.  Currently, it defaults to "PRN" but
  3602.          you can send printer output anywhere you wish by changing
  3603.          record #273.
  3604.  
  3605.  
  3606.  
  3607.          Create your OWN help files
  3608.          --------------------------
  3609.  
  3610.          You can "over-ride" the internal help screens we have
  3611.          provided in 1stReader by creating your own HELP.xxx files.
  3612.          "xxx" corresponds to the help record number.  You can create
  3613.          custom help files for a BBS by storing them in the BBS
  3614.          subdirectory.  Or, you can globally affect the files by
  3615.          storing them in the SYSTEM subdirectory.
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.                                     Page 53 
  3623.  
  3624.  
  3625.  
  3626.          1stReader is network ready
  3627.          --------------------------
  3628.  
  3629.          You can run multiple users from one copy of 1stReader kept on
  3630.          a network.  Or, you can let family members keep their own
  3631.          setups without requiring multiple copies of 1stReader.
  3632.  
  3633.          All you need to do is to create separate subdirectories for
  3634.          each user.  You could name them C:\1ST\JOHN, C:\1ST\BILL,
  3635.          etc.  You can even place them on separate drives if you wish.
  3636.          Each user subdirectory MUST have a copy of 1ST.SET and
  3637.          1ST.KEY in order to work.  1stReader will create unique files
  3638.          and BBS subdirectories for each user.
  3639.  
  3640.          In order to find the 1stReader system files, you need to use
  3641.          the DOS environment variable "SET 1ST=C:\1ST\" (change this
  3642.          to point to your 1stReader SYSTEM location) in your
  3643.          AUTOEXEC.BAT file.  This lets 1st find the files it needs to
  3644.          run over a networked system.  Remember, you must still
  3645.          execute the program by typing C:\1ST\1ST from the DOS command
  3646.          line or a batch file.
  3647.  
  3648.          IMPORTANT NOTICE: YOU *MUST* PURCHASE MULTIPLE COPIES OF
  3649.                            1STREADER FOR EACH USER ON YOUR SYSTEM
  3650.                            IF USED IN A BUSINESS.  IT IS A VIOLATION
  3651.                            OF OUR LICENSE AGREEMENT AND COPYRIGHTS IF
  3652.                            YOU ALLOW MULTIPLE USERS TO OPERATE
  3653.                            1STREADER USING THE SAME 1ST.KEY FILE.
  3654.  
  3655.          Notice to families:  We consider 1stReader to be 'marital
  3656.                               property'.  Any family member who
  3657.                               lives under your roof may use your
  3658.                               copy of 1stReader.
  3659.  
  3660.  
  3661.  
  3662.          GO.ASC, GO.ANS, GO.BIN, GO.B1N
  3663.          ------------------------------
  3664.  
  3665.          In the file manager, after you select a subdirectory, if
  3666.          1stReader finds any of these files in the current
  3667.          subdirectory they are immediately displayed to the user.
  3668.  
  3669.          The idea behind this feature is to allow archived programs
  3670.          and "services" that are sent by some mail systems to have
  3671.          their own "introduction" when used with 1stReader.
  3672.  
  3673.          A word about services and 1stReader.  Offline games are now
  3674.          very easy to create using 1stReader's service capabilities.
  3675.          Your game can use one of these GO display files to welcome
  3676.          the user to the game.  If a READ.ME file is found in the
  3677.          service then that file is automatically displayed to the
  3678.          user (game news or rules could be posted here).  Finally, you
  3679.          can provide a GO.BAT file so all the user has to do to start
  3680.  
  3681.  
  3682.  
  3683.  
  3684.                                     Page 54 
  3685.  
  3686.  
  3687.  
  3688.          your game is to click on the "GO" button.  Your game software
  3689.          can then write any files that are needed to be sent back up
  3690.          to the mail system by storing them inside the REP-WORK
  3691.          subdirectory.  The contents of this subdirectory are
  3692.          compressed into the .REP mail packet and transmitted back to
  3693.          the mail system.
  3694.  
  3695.          If you are interested in creating offline games for use with
  3696.          mail systems that support services and 1stReader, please give
  3697.          our customer support system a call.  We'll be happy to show
  3698.          you everything you need.
  3699.  
  3700.          Trivia games could be a good example of an offline game.
  3701.  
  3702.  
  3703.  
  3704.          Automatic DOORWAY ON and DOORWAY OFF modes
  3705.          ------------------------------------------
  3706.  
  3707.          If you call a bulletin board system using Doorway 2.22 from
  3708.          Marshall Dudley then 1stReader can automatically switch into
  3709.          and out of 'Doorway mode' while connected to the system.
  3710.          Doorway 2.22 transmits codes that 1stReader watches for and
  3711.          when found, turns 'Doorway mode' ON or OFF for the user.
  3712.          Note:  This feature requires use of Doorway 2.22 (or later).
  3713.  
  3714.  
  3715.  
  3716.          "Header" files
  3717.          --------------
  3718.  
  3719.          1stReader supports "Header" files that can be used in your
  3720.          editor whenever you enter a message.  If the file
  3721.          "HEADER.HDR" is found in either the BBS or SYSTEM
  3722.          subdirectory, then 1stReader will read it and copy it into
  3723.          the "top" of your reply.  You can use any @variable you wish
  3724.          in your header.
  3725.  
  3726.          1stReader also looks for the text "∙HEADER:<name>" in a
  3727.          message.  If this text is found and <name>.HDR exists in
  3728.          either the BBS or SYSTEM subdirectories, then 1stReader uses
  3729.          this header file instead to begin your replies.
  3730.  
  3731.          You can also have separate "Header" files for public and
  3732.          private messages.  1stReader will determine which file is
  3733.          used depending if you are replying to a public or private
  3734.          message.
  3735.  
  3736.                           HEADER.PUB - Public messages
  3737.                           HEADER.PRI - Private messages
  3738.  
  3739.          Sysops, this is a good candidate for your 1ST-TIME.ZIP files
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.                                     Page 55 
  3747.  
  3748.  
  3749.  
  3750.          Auto sensing dialog boxes
  3751.          -------------------------
  3752.  
  3753.          If you have defined the dialog boxes to use the same color as
  3754.          the current background, 1stReader switches to a WHITE
  3755.          background in the dialog box automatically so the box will
  3756.          stand out.  If your background is white (and you are using
  3757.          color) then light blue will be substituted.
  3758.  
  3759.  
  3760.  
  3761.          "Ok" and "Cancel" buttons
  3762.          -------------------------
  3763.  
  3764.          If you are using a mouse then 1stReader will place these
  3765.          mouse buttons inside keyboard dialog boxes.  They do not show
  3766.          up if you are not using a mouse.
  3767.  
  3768.  
  3769.  
  3770.          Attention John Hancock fans!
  3771.          ----------------------------
  3772.  
  3773.          1stReader always supports the famous "DOS:JH3" tagline.  This
  3774.          allows you to call John Hancock from inside 1stReader.  If
  3775.          you like to use a lot of taglines in the internal tagline
  3776.          manager, picking out that single "DOS:JH3" tagline could be a
  3777.          bear.
  3778.  
  3779.          Instead, create yourself a "picklist" for use at the tagline
  3780.          prompt when saving a message by arrowing into this field and
  3781.          pressing ALT+F8.  Use this entry for your picklist:
  3782.  
  3783.                                 TITLE=Taglines
  3784.                                 DOS:JH3
  3785.  
  3786.          Press [F8] to call up the picklist.  When you select
  3787.          "DOS:JH3" from the list 1stReader will call John Hancock
  3788.          automatically and pass the tagline to you.  1stReader
  3789.          supports the "DOS:" command in taglines.  If this string is
  3790.          found then 1stReader will shell to DOS and execute the
  3791.          command immediately after "DOS:".
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.                                     Page 56 
  3809.  
  3810.  
  3811.  
  3812.          Specialized conference .BAT, .BTM, .CMD and .LST files
  3813.          ------------------------------------------------------
  3814.  
  3815.          If you create files using these extensions, but using the
  3816.          names of conferences, then these files are active when you
  3817.          press [F6] (for .BAT files), [F7] (or .CMD files) or [F8] (or
  3818.          .LST files).
  3819.  
  3820.          This lets you create specific files that only work when you
  3821.          have joined a particular conference.
  3822.  
  3823.  
  3824.  
  3825.          Support for DOOR.ID
  3826.          -------------------
  3827.  
  3828.          If 1stReader finds a DOOR.ID inside the QWK mail packet and
  3829.          the entry "CONTROLTYPE =" is found inside, then, when you add
  3830.          or drop conferences using 1stReader, it reverts back to the
  3831.          "old" method of writing one message at a time to add or drop
  3832.          the conference.   This method is provided for backwards
  3833.          compatibility with older mail systems.
  3834.  
  3835.  
  3836.  
  3837.          Downloading files
  3838.          -----------------
  3839.  
  3840.          If you download files from 1stReader's internal terminal
  3841.          module or from your favorite terminal program, 1stReader will
  3842.          automatically invoke the file manager and take you to your
  3843.          download subdirectory when you exit the terminal mode.
  3844.  
  3845.          This feature lets you manage the files you just downloaded in
  3846.          the online session.
  3847.  
  3848.  
  3849.  
  3850.          Longer signatures
  3851.          -----------------
  3852.  
  3853.          1stReader provides you with a "signature" field that will
  3854.          automatically place your name on the bottom of messages you
  3855.          enter in the reader.
  3856.  
  3857.          However, you may find you need more lines in your signature
  3858.          or you might like to incorporate graphics.  1stReader lets
  3859.          you use "SIG=<filespec>" as a signature.  This tells 1st to
  3860.          look for the file <filespec> in the BBS subdirectory or in
  3861.          the SYSTEM subdirectory.  If found, the file is imported
  3862.          automatically into your replies.
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.                                     Page 57 
  3871.  
  3872.  
  3873.  
  3874.          Multiple signatures
  3875.          -------------------
  3876.  
  3877.          Sometimes having only one signature can be a limitation.
  3878.          1stReader lets you have up to 100 signatures per system if
  3879.          you need them.  The trick is to use the Picklist system.
  3880.          Instead of entering your name in the signature field use the
  3881.          entry "NAMES.LST".  Then, press the ALT+F8 key to create the
  3882.          picklist.  Here is an example:
  3883.  
  3884.                                TITLE=Signatures
  3885.                                Sparky,Sparky
  3886.                                Qmail Support,Qmail Support
  3887.                                Long signature,SIG=NAME1
  3888.  
  3889.          When you save the message you'll be asked to select the
  3890.          signature you wish to use.  Notice the "SIG=NAME1" entry.  If
  3891.          you pick that entry 1stReader will use the file "NAME1" as
  3892.          your signature.
  3893.  
  3894.  
  3895.  
  3896.          Support for the "1ST" file
  3897.          --------------------------
  3898.  
  3899.          If 1stReader finds the file "1ST" inside a mail packet, it
  3900.          will display this file to the user immediately after the
  3901.          "Welcome" screen.
  3902.  
  3903.          This file is provided so sysops can pass information on to
  3904.          their offline mail users that might not apply to their
  3905.          regular "online" users.
  3906.  
  3907.  
  3908.  
  3909.          Automatic SuperShell
  3910.          --------------------
  3911.  
  3912.          If you have not turned SuperShell ON in Setup's "Switches"
  3913.          section and you attempt to shell to DOS with less than 125k
  3914.          of memory available, 1stReader will automatically invoke
  3915.          SuperShell for you.
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929.  
  3930.  
  3931.  
  3932.                                     Page 58 
  3933.  
  3934.  
  3935.  
  3936.          Nonstandard serial ports
  3937.          ------------------------
  3938.  
  3939.          1stReader will support nonstandard COM3 and COM4 setups as
  3940.          long as they do not use the "high" interrupts.  1stReader
  3941.          defaults COM3: and COM4: to use the industry standard
  3942.          addresses, but you can override this by using the format:
  3943.  
  3944.                                Base Address,IRQ
  3945.  
  3946.  
  3947.          "Base Address" is the base address of the port, in
  3948.          hexadecimal.  "IRQ" is the interrupt request line value.  If
  3949.          your system uses the industry standard addresses simply use
  3950.          "3" or "4" in this field.
  3951.  
  3952.          Also note that 1stReader supports the "%4" parameter in the
  3953.          Zmodem upload and download commands too.  This parameter is
  3954.          replaced with the Base Address,IRQ value so QSZ can use the
  3955.          "portx=" command line parameter.
  3956.  
  3957.  
  3958.  
  3959.          New commands supported in DOOR.ID
  3960.          ---------------------------------
  3961.  
  3962.          1stReader will use these commands if found in a DOOR.ID file
  3963.          inserted into a QWK mail packet:
  3964.  
  3965.                                 MIXEDCASE = YES
  3966.                                 FIDOTAG = YES
  3967.  
  3968.          If "MIXEDCASE = YES" is found then the user will be allowed
  3969.          to address messages using upper and lower case.  If the
  3970.          string "FIDOTAG = YES" is found then messages left by
  3971.          1stReader will automatically use Fido-compliant taglines.
  3972.          You can use "Fido" taglines "on the fly" by including the
  3973.          string "@FIDO@" in your replies if you wish.  1stReader
  3974.          also automatically leaves Fido-compliant taglines if it finds
  3975.          a valid Fidonet address in the tagline of the original
  3976.          message.
  3977.  
  3978.          If you use a Fido-compatible tearline then 1stReader will
  3979.          search your tagline for any characters higher than ASCII 127
  3980.          and if found, replace them with periods.
  3981.  
  3982.  
  3983.  
  3984.          LIST is restricted
  3985.          ------------------
  3986.  
  3987.          You cannot list files that end with a .COM, .EXE, .OVL, .ZIP,
  3988.          .ARC, .ARJ, .LHA or .ZOO file extensions from within
  3989.          1stReader.
  3990.  
  3991.  
  3992.  
  3993.  
  3994.                                     Page 59 
  3995.  
  3996.  
  3997.  
  3998.          Robocomm-named packets supported
  3999.          --------------------------------
  4000.  
  4001.          1stReader will automatically find mail packets that have been
  4002.          named using Robocomm's "nPACKET.QWK" format.  "n" is the
  4003.          packet number received for the bulletin board system.
  4004.  
  4005.  
  4006.          QMAIL4 is assumed
  4007.          -----------------
  4008.  
  4009.          If you forget to enter the DOOR command in the bulletin
  4010.          board's dialing entry then 1stReader will default to
  4011.          "QMAIL4".
  4012.  
  4013.  
  4014.  
  4015.          Three button mice users
  4016.          -----------------------
  4017.  
  4018.          If you use a three button mouse you'll find that clicking on
  4019.          the middle mouse button will "ping pong" the mouse cursor
  4020.          between the upper screen and mouse buttons on the bottom of
  4021.          the screen.  This feature works in the...
  4022.  
  4023.                               File management screen
  4024.                               List messages screen
  4025.                               Mail packets screen
  4026.  
  4027.  
  4028.  
  4029.          Using SPACE BAR and SHIFT+ENTER
  4030.          -------------------------------
  4031.  
  4032.          1stReader supports use of the space bar as a method to move
  4033.          through a mail packet.  You can use nothing but the space to
  4034.          read messages once you have selected the "Read" button from
  4035.          the "Read messages" screen.
  4036.  
  4037.          If you are using 1stReader on a laptop check out the
  4038.          SHIFT+ENTER key combo.  On laptops it can be hard finding
  4039.          that PgDn key.  If you hold down SHIFT while pressing the
  4040.          ENTER key 1stReader will think you pressed the PgDn key.
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.                                     Page 60 
  4057.  
  4058.  
  4059.  
  4060.          Protect those 'questionable' taglines
  4061.          -------------------------------------
  4062.  
  4063.          If you place a question mark as the first character in a
  4064.          tagline, 1stReader will ask you to confirm use of the tagline
  4065.          in a message.
  4066.  
  4067.          This feature helps protect you from using 'questionable'
  4068.          taglines you might use in personal messages but not in public
  4069.          messages.
  4070.  
  4071.  
  4072.  
  4073.          'Hotkey' your .CMD and .LST entries
  4074.          -----------------------------------
  4075.  
  4076.          You can add 'hotkey' support for your .CMD and .LST files by
  4077.          placing the character "»" (ASCII 175) directly *IN FRONT* of
  4078.          the character you wish to use for the hotkey entry.
  4079.          1stReader will strip the "»" character from the string when
  4080.          it is returned back to you.
  4081.  
  4082.  
  4083.  
  4084.          Entry fields are accessible
  4085.          ---------------------------
  4086.  
  4087.          Entry fields are accessible through the @API$(xxx) function.
  4088.          All field entries are numbered starting with field #1 at the
  4089.          top of your screen.  The @API$(xxx) function lets you access
  4090.          the first field by using @API$(201).  The second field entry
  4091.          is accessible by using @API$(202), etc.
  4092.  
  4093.          This feature lets you pass field entries that are on the
  4094.          current screen to a shelled application.  Remember that these
  4095.          functions only return the field entries for the 'current'
  4096.          screen.  If the current screen does not contain any field
  4097.          entries, the @API$(xxx) function returns a null string.
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.  
  4113.  
  4114.  
  4115.  
  4116.  
  4117.  
  4118.                                     Page 61 
  4119.  
  4120.  
  4121.  
  4122.          Sysops can use Qmail Door in DOS using 1stReader
  4123.          ------------------------------------------------
  4124.  
  4125.          If you own a copy of our Qmail Door you can have 1stReader
  4126.          scan for new mail and upload replies by using the $$MAIL.BAT
  4127.          and $$REPLY.BAT files.
  4128.  
  4129.          Your $$MAIL.BAT file should read:
  4130.  
  4131.             @echo off
  4132.             cls
  4133.             c:
  4134.             cd \pcb
  4135.             PCBOARD /USERSYS;<first>;<last>;PWRD:<password>;TPA:QMAIL4
  4136.             c:\pcb\qm4\qmail4 U;D;Y;G
  4137.             PCBOARD /READSYS
  4138.  
  4139.  
  4140.          Your $$REPLY.BAT file should read:
  4141.  
  4142.             @echo off
  4143.             cls
  4144.             c:
  4145.             cd \pcb
  4146.             PCBOARD /USERSYS;<first>;<last>;PWRD:<password>;TPA:QMAIL4
  4147.             c:\pcb\qm4\qmail4 U;G
  4148.             PCBOARD /READSYS
  4149.  
  4150.          <first> is your first name used to log into your PCBoard
  4151.          system.  <last> is your last name.  <password> is the
  4152.          password you use to log into your PCBoard system.  You might
  4153.          need to edit these batch files to change the location of your
  4154.          PCBoard subdirectory.  These batch files only work with
  4155.          PCBoard 15.0.
  4156.  
  4157.          Simply copy these batch files into the 1stReader BBS
  4158.          subdirectory for your system and when you later select your
  4159.          system from 1stReader's menu, you'll go through DOS to
  4160.          transfer your mail packets instead of calling your system.
  4161.  
  4162.  
  4163.  
  4164.          Control characters in .LST files and KEYBOARD.$$$
  4165.          -------------------------------------------------
  4166.  
  4167.          1stReader lets you use control characters in your picklists
  4168.          and in KEYBOARD.$$$.  If you would like to force a carriage
  4169.          return you can use "^M" at the end of the entry.
  4170.  
  4171.          Remember that when you use picklists and KEYBOARD.$$$ from a
  4172.          keyboard entry field, the carriage return is automatically
  4173.          supplied by 1stReader.  This feature lets you force control
  4174.          characters while in the internal editor.
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.                                     Page 62 
  4181.  
  4182.  
  4183.  
  4184.          $$DIAL.SCR supported
  4185.          --------------------
  4186.  
  4187.          This script file can be used to dial a bulletin board system
  4188.          in place of 1stReader's internal dialer.  The idea behind
  4189.          supporting this script file is to allow users to make long
  4190.          distance calls using SPRINT, MCI or other long distance
  4191.          carriers that require additional access codes.
  4192.  
  4193.          Placing $$DIAL.SCR inside the SCRIPTS subdirectory will force
  4194.          1stReader to use the script file everytime it calls a system,
  4195.          regardless if it is long distance or not.  We recommend that
  4196.          you place this file inside the individual BBS system
  4197.          subdirectory for better control.
  4198.  
  4199.  
  4200.  
  4201.          Addition bulletin board systems supported
  4202.          -----------------------------------------
  4203.  
  4204.          1stReader now has the ability to use different script files
  4205.          when calling bulletin board systems.  This means that if you
  4206.          are calling a Wildcat!  system you can tell 1stReader to use
  4207.          the Wildcat! scripts.  By default, 1stReader uses the
  4208.          PCBoard/Qmail Door script files.
  4209.  
  4210.  
  4211.  
  4212.          Carriage returns in the modem initialization string
  4213.          ---------------------------------------------------
  4214.  
  4215.          You can use the character "{" in your modem init strings to
  4216.          indicate where a carriage return is to be inserted.
  4217.  
  4218.  
  4219.  
  4220.          SERVICES.NEW
  4221.          ------------
  4222.  
  4223.          Sysops can include a file named SERVICES.NEW in the QWK mail
  4224.          packets and 1stReader will display it when the user selects
  4225.          the 'Services' button.  This file is intended to give
  4226.          1stReader users an introduction to the services provided.
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.  
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.                                     Page 63 
  4243.  
  4244.  
  4245.  
  4246.          Clear all entry fields with one keystroke
  4247.          -----------------------------------------
  4248.  
  4249.          Sometimes it might handy to clear out ALL of the entry fields
  4250.          on a screen at one time.  The ZIPPY scan screen is a good
  4251.          example - you might have saved default values but this time
  4252.          you want to search for totally different keywords.  If you
  4253.          wish to clear out all of the entry fields at one time press
  4254.          the CTRL key and while holding it down also press the ESC
  4255.          key.  All of the entry field values will be erased.
  4256.  
  4257.  
  4258.  
  4259.          QSZ supports 'crash-recovery'
  4260.          -----------------------------
  4261.  
  4262.          If you were downloading a file from a bulletin board system
  4263.          and the download was interrupted before the transmission was
  4264.          completed, you can simply request that the BBS send you the
  4265.          file and 1stReader will resume the transmission where it left
  4266.          off.
  4267.  
  4268.          Note that 'crash recovery' is not supported while downloading
  4269.          QWK mail packets.
  4270.  
  4271.  
  4272.  
  4273.          Assign different dialing prefixes to telephone numbers
  4274.          ------------------------------------------------------
  4275.  
  4276.          Some bulletin board systems use different 'hunt groups' where
  4277.          one group requires use of dialing prefix #1 and the other
  4278.          groups might require prefix #2.  You can tell 1stReader which
  4279.          prefix to use by using "Px nnn-nnnn" as the telephone number.
  4280.          For example, "P2 555-1212" would tell 1stReader to use
  4281.          dialing prefix #2 for this telephone number even if you
  4282.          assigned prefix #1 to the system.
  4283.  
  4284.          If you wish you can also tell 1stReader to execute a script
  4285.          file for ONE particular number before dialing the number.  To
  4286.          do this you need to enter the name of the script file (.SCR
  4287.          is assumed) in the phone entry field.
  4288.  
  4289.          Example: "SCRIPT|555-1212"
  4290.  
  4291.          This number would force 1stReader to execute "SCRIPT.SCR" (if
  4292.          it exists) before dialing "555-1212" every time.
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.                                     Page 64 
  4305.  
  4306.  
  4307.  
  4308.          Access interrupts from DOS command line functions
  4309.          -------------------------------------------------
  4310.  
  4311.          You can tell 1stReader to access a system interrupt instead
  4312.          of a DOS command.  The idea behind this feature is to support
  4313.          any future TSRs that might be written to help the way
  4314.          1stReader operates.
  4315.  
  4316.          Essentially, this gives 1stReader a 'DLL' capability.  For
  4317.          example, a TSR could be loaded before running 1stReader that
  4318.          lets the reader display a message in a totally different
  4319.          manner than the method built into 1stReader now.
  4320.  
  4321.          This is a feature that was available in our legendary 'QPro'
  4322.          offline mail reader we wrote back in 1989 (but never made it
  4323.          to market).  We used it to add some rather interesting
  4324.          features to QPro later and we wanted to incorporate the same
  4325.          support for future use in 1stReader.
  4326.  
  4327.          Here's how you do it.  If the DOS command starts with "INT:"
  4328.          then 1stReader knows we're going to call an interrupt instead
  4329.          of shelling to DOS.  You can pass register data on the
  4330.          command line like this:
  4331.  
  4332.                    INT:$80 AX:$0601 BX:$0700 CX:$0101 DX:$1950
  4333.  
  4334.          Notice that "$" before a number indicates the number is a
  4335.          hexidecimal number.  If the "$" is missing then the number is
  4336.          a decimal value.  The reader will then execute the interrupt
  4337.          and return the value of register AL in API(234).  Also, all
  4338.          register pairs are loaded into the API so they can be tested
  4339.          after execution of the  interrupt.
  4340.  
  4341.          You can also access an interrupt from any batch file by using
  4342.          the command:
  4343.  
  4344.                :1ST: INT:$80 AX:$0601 BX:$0700 CX:$0101 DX:$1950
  4345.  
  4346.          The interrupt will execute and then the batch file can
  4347.          perform any test on any of the register pairs (which are
  4348.          loaded back into the API).
  4349.  
  4350.          1STTEXT record #350 has been reserved to hold an interrupt
  4351.          call that is executed immediately after loading a message.
  4352.          Record #351 has been reserved to hold an interrupt call that
  4353.          is executed just before a message is displayed on your
  4354.          screen.  #351 can be used to display a message in a totally
  4355.          different manner from 1stReader.  You can pass back a
  4356.          keyboard scan code in the AL register to the program.  If
  4357.          AL=0 then the message is displayed normally.  Otherwise, AL
  4358.          contains the scancode and the reader uses it as if you
  4359.          pressed the key in 1stReader.
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.                                     Page 65 
  4367.  
  4368.  
  4369.  
  4370.          You can ONLY address interrupts $80 through $E9.  You cannot
  4371.          call any BIOS or DOS interrupt.  Note that interrupts can
  4372.          ONLY be called from CMD and batch files (or recs #350/#351 in
  4373.          1STTEXT) on YOUR system.
  4374.  
  4375.  
  4376.  
  4377.          NAPLPS support is now available
  4378.          -------------------------------
  4379.  
  4380.          1stReader can support practically *ANY* file type.  To
  4381.          illustrate this feature, 1stReader now supports NAPLPS files.
  4382.          We've provided a NAPLPS kit on the distribution diskette
  4383.          (file named NAPLPS.ZIP) that easily installs into 1stReader
  4384.          and provides your system with the ability to display NAPLPS
  4385.          files from the file manager and *anywhere* a file is
  4386.          displayed.  You can now include NAPLPS files in QWK mail
  4387.          packets too!
  4388.  
  4389.          NAPLPS is a graphics standard that was created 10 years ago.
  4390.          You see it used often on cable TV systems.  It lets fairly
  4391.          complex graphics images be transmitted in very small files.
  4392.          While they do not have the resolution offered by GIF files
  4393.          they can occupy 1/10th the disk space, or even less.
  4394.  
  4395.          You can study the NAPLPS.ZIP kit to see how we installed
  4396.          NAPLPS support.  It is VERY easy to add support into
  4397.          1stReader for virtually any file type.
  4398.  
  4399.  
  4400.  
  4401.          Make temporary changes to your 1stReader setup
  4402.          ----------------------------------------------
  4403.  
  4404.          If you have ADVANCED FEATURES turned ON then 1stReader will
  4405.          keep the changes you made 'in memory' and not reload the
  4406.          original settings if you decide you do not want to
  4407.          permanently save the changes.
  4408.  
  4409.  
  4410.  
  4411.          Tagline support from the terminal section
  4412.          -----------------------------------------
  4413.  
  4414.          You can add this entry into your $$1ST.CMD file:
  4415.  
  4416.                       Manual tag,MACRO=---^M ■ Manual tagline^M
  4417.  
  4418.          When you are in the terminal mode and press the F7 key and
  4419.          select "Manual tag" from the menu, presto!  You get a
  4420.          tagline!
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.                                     Page 66 
  4429.  
  4430.  
  4431.  
  4432.          The 'CONFIRMATION' field
  4433.          ------------------------
  4434.  
  4435.          This field is used for you to enter any information the BBS
  4436.          might require to confirm it is you who is calling.  For
  4437.          example, WildCat systems will sometimes ask you to enter your
  4438.          birthday to confirm it is you.  Other systems might ask for
  4439.          your mother's maiden name.  This field is limited to 13
  4440.          characters.
  4441.  
  4442.          1stReader also supports the #CONFIRM@ script variable.  This
  4443.          variable contains the information held in the confirmation
  4444.          screen so it can be transmitted back to the bulletin board
  4445.          system when requested.
  4446.  
  4447.  
  4448.  
  4449.          The .COPY command
  4450.          -----------------
  4451.  
  4452.          Whenever long message replies are split up, sometimes it
  4453.          might be nice to have the beginning of the message copied
  4454.          into the extra messages created by 1stReader.  For example,
  4455.          if your long message contains a Usenet address header, it
  4456.          would be nice to have 1stReader automatically copy the header
  4457.          into the extra messages it chops up for you.
  4458.  
  4459.          Place ".COPY" on a line by itself in your reply and 1stReader
  4460.          will copy any text above it into the 'split' messages
  4461.          automatically.  The actual ".COPY" does not get saved with
  4462.          your reply, so if you later re-edit the message, you must add
  4463.          it back in yourself.  A must-have for heavy Usenet users!!!
  4464.  
  4465.          NOTE!  You may copy only up to 25 lines of your message.
  4466.  
  4467.  
  4468.  
  4469.          1stReader automatically aborts a script...
  4470.          ------------------------------------------
  4471.  
  4472.          If you are dialing a system and get three 'Call Failed'
  4473.          messages in a row without a 'Busy' being encountered, then
  4474.          1stReader aborts calling the bulletin board system figuring
  4475.          that it is not answering.
  4476.  
  4477.  
  4478.  
  4479.          Picklist notices
  4480.          ----------------
  4481.  
  4482.          1stReader will only display the "F8 = Picklist" if you are in
  4483.          novice mode.  It takes some disk accessing to figure out if a
  4484.          picklist exists and we reasoned that if you're an expert, you
  4485.          know where the picklists are anyhow.
  4486.  
  4487.  
  4488.  
  4489.  
  4490.                                     Page 67 
  4491.  
  4492.  
  4493.  
  4494.          Scroll quickly through large messages
  4495.          -------------------------------------
  4496.  
  4497.          You can scroll 100 lines at a time (both up and down) within
  4498.          one message by holding down the CTRL key at the same time you
  4499.          press PgUp or PgDn.
  4500.  
  4501.  
  4502.  
  4503.          Restricting some .CMD functions
  4504.          -------------------------------
  4505.  
  4506.          You can add the term <BBS> into any CMD command file and if
  4507.          you have not selected a BBS yet from the opening menu,
  4508.          1stReader will not display the command in the command menu.
  4509.  
  4510.          Example: View capture file,#API$(28)#API$(10).CAP <BBS>
  4511.  
  4512.          This entry means that if you haven't selected a BBS yet then
  4513.          this command will not be displayed in the command menu.  You
  4514.          can also use the term <ADV> in your CMD files.  If the user
  4515.          has not turned on the "Advanced Features" switch then any
  4516.          commands that include <ADV> will not be displayed in the
  4517.          menu.
  4518.  
  4519.  
  4520.  
  4521.          Locate a file inside your system's PATH statement
  4522.          -------------------------------------------------
  4523.  
  4524.          1stReader supports the "<PATH>" variable in filespecs.  This
  4525.          variable tells 1stReader to search the system's PATH variable
  4526.          until it locates the file.
  4527.  
  4528.          Example: "<PATH>COMMAND.COM"
  4529.  
  4530.          This entry would tell 1stReader to search all subdirectories
  4531.          in the "PATH" DOS environment variable until COMMAND.COM was
  4532.          found.  1stReader then sets the full filespec to this name.
  4533.          (C:\COMMAND.COM)
  4534.  
  4535.  
  4536.  
  4537.          1st moves files automatically into the BBS subdirectory
  4538.          -------------------------------------------------------
  4539.  
  4540.          1stReader moves the WELCOME, BBS news and GOODBYE screens
  4541.          into the BBS subdirectories.  This lets offline mail systems
  4542.          only send these files out when they are updated.  This means
  4543.          a BBS does not need to send a WELCOME.GIF with every mail
  4544.          packet downloaded from a mail system.  The file is
  4545.          transferred once and as long as it is not updated by the
  4546.          sysop, it never needs to be sent again.
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.                                     Page 68 
  4553.  
  4554.  
  4555.  
  4556.          Disconnect immediately after an upload or download
  4557.          --------------------------------------------------
  4558.  
  4559.          1stReader supports the CTRL+PGUP and CTRL+PGDN keystrokes
  4560.          while in the terminal mode.  These keystrokes work just like
  4561.          PGUP and PGDN do (upload or download a file) but when you
  4562.          hold down the CTRL key at the same time it tells 1stReader to
  4563.          hangup the connection after returning from QSZ.
  4564.  
  4565.          How many times have you started a long file transfer to a
  4566.          bulletin board system and didn't want to have to wait for the
  4567.          transfer to be over in order to disconnect from the system?
  4568.          Just use this feature and after the file transfer is finished
  4569.          you will automatically be disconnected from the system.
  4570.  
  4571.  
  4572.  
  4573.          Modify the 1stReader API after a DOS shell
  4574.          ------------------------------------------
  4575.  
  4576.          You could always read the 1stReader API from a DOS call or
  4577.          use the @variables to display contents of the API.  Now you
  4578.          can also update the API in a DOS shell by creating a file
  4579.          named API-NEW.$$$.  This file contains one entry per line,
  4580.          like this:
  4581.  
  4582.                       @API$(nnn)="xxxxxxxxxxx"    ' Strings
  4583.                       @API&(nnn)=xxxx             ' Long integer
  4584.                       @API(nnn)=xxxx              ' Integer
  4585.  
  4586.          1stReader also adds support for the @PASS(nn) variable as
  4587.          well.  The @PASS variables are setup to let 3rd party
  4588.          programmers pass info from one application to another through
  4589.          the 1stReader API itself.  Up to 20 variables are allocated
  4590.          for use.
  4591.  
  4592.  
  4593.  
  4594.          Usenet message headers
  4595.          ----------------------
  4596.  
  4597.          1stReader will display up to 50 characters of the FROM and
  4598.          SUBJECT fields from a Usenet message header.  If the fields
  4599.          are longer than 50 characters you can scroll the headers left
  4600.          or right with the message text.
  4601.  
  4602.          1stReader now automatically detects a Usenet sourced message
  4603.          from any gateway (as long as a valid "Message-Id" field was
  4604.          found) and will use USENET.HDR in any new message or reply
  4605.          you enter automatically.
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.                                     Page 69 
  4615.  
  4616.  
  4617.  
  4618.          Alias signatures
  4619.          ----------------
  4620.  
  4621.          If you do not use an alias name in your replies then API(195)
  4622.          is always set to "1".  It can be set to "2" if the second
  4623.          alias entry was used to save the message or "3" if the third
  4624.          was used.
  4625.  
  4626.          You can use this variable in your signature filespec so you
  4627.          can have 1stReader point to different signatures based on the
  4628.          alias entry used to save the message.  For example:
  4629.  
  4630.                                 SIG=NAME.#API(195)
  4631.  
  4632.          would let you use "NAME.1" for your normal signature,
  4633.          "NAME.2" for alias #2's signature and "NAME.3" for alias #3's
  4634.          signature.
  4635.  
  4636.  
  4637.  
  4638.          The virtual keyboard
  4639.          --------------------
  4640.  
  4641.          If you click a mouse button and the mouse is positioned in
  4642.          the upper left corner of the screen, the virtual keyboard
  4643.          will appear.  This was done to help disabled users with one
  4644.          finger select the virtual keyboard.  You can also access the
  4645.          virtual keyboard by pressing the LEFT and RIGHT mouse buttons
  4646.          at the SAME time.
  4647.  
  4648.  
  4649.  
  4650.          The EXTRA FEATURE button
  4651.          ------------------------
  4652.  
  4653.          1stReader supports the $$EXTRA.CMD command menu.  It would be
  4654.          nice to offer sysops a way to add extra commands to the
  4655.          reader to help further its functions.  While pressing F7 is
  4656.          always available, novices might not know about it.  So an
  4657.          "Extra features" mouse button has been added to the "Read
  4658.          Messages" menu.
  4659.  
  4660.          If you click on this button 1stReader will look for the
  4661.          $$EXTRA.CMD command menu file (which is designed just like
  4662.          any other command menu file).  1stReader will look in the BBS
  4663.          subdirectory first for the file, and if not found, 1st will
  4664.          look in the \1ST subdirectory.  If $$EXTRA.CMD is not found
  4665.          then $$1ST.CMD is used instead.
  4666.  
  4667.          Using the additional add-in features found in 1stReader you
  4668.          can add just about anything to the system now.  New features
  4669.          can look like they are an integrated part of 1stReader.
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.                                     Page 70 
  4677.  
  4678.  
  4679.  
  4680.          Display files directly from a .CMD file
  4681.          ---------------------------------------
  4682.  
  4683.          1stReader supports the "DISPLAY=<filespec>" statement in .CMD
  4684.          menu files.  If you use this command in place of a DOS
  4685.          command then 1stReader will display <filespec> on your screen
  4686.          and wait for you to press any key to continue.  This feature
  4687.          supports .ASC, .ASC, .BIN, .B1N and .GIF files.  This feature
  4688.          is ideal if you wish to add a 'boss screen' to 1stReader.
  4689.  
  4690.  
  4691.  
  4692.          '$<macro>' now available in ANSI files and messages
  4693.          ---------------------------------------------------
  4694.  
  4695.          1stReader can now use the following commands from inside text
  4696.          files or messages to do the following commands.  Use only one
  4697.          command per line.
  4698.  
  4699.             $BLINK ON/OFF        $BLINK OFF will let 1stReader use
  4700.                                  high intensity backgrounds in ANSI
  4701.                                  messages.  $BLINK ON turns this
  4702.                                  capability off and turns blinking
  4703.                                  back on.
  4704.  
  4705.             $MUSIC ON/OFF        Turns music ON or OFF.  Note that
  4706.                                  this switch DOS NOT change the switch
  4707.                                  in SETUP that controls ANSI music.
  4708.                                  That switch MUST be turned on for
  4709.                                  these commands to work.  These
  4710.                                  commands reset the internal ANSI
  4711.                                  emulator's music flag so if the user
  4712.                                  pressed ESC to turn music off the
  4713.                                  file can reset the switch, or turn it
  4714.                                  off.
  4715.  
  4716.             $TOP xx              These commands set the top, bottom,
  4717.             $BOTTOM xx           left and right margins for ANSI
  4718.             $LEFT xx             screens.  Note that you must not
  4719.             $RIGHT xx            exceed the margins for  physical
  4720.                                  screen on your system.
  4721.  
  4722.             $LSET nn <text>      These commands will take <text> and
  4723.             $RSET nn <text>      set itinto a blank string that is
  4724.             $CENTER nn <text>    "nn" characters long.  $LSET will set
  4725.                                  <string> to the left side of the
  4726.                                  blank string.  $RSET sets <string> to
  4727.                                  the right side of the blank string.
  4728.                                  $CENTER will center <string> into the
  4729.                                  blank string.
  4730.  
  4731.             $LOCATE row,col      Positions the cursor to row,col on
  4732.                                  the screen.
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.                                     Page 71 
  4739.  
  4740.  
  4741.  
  4742.             $GIF <filespec>      Displays a GIF file.
  4743.  
  4744.             $NAP <filespec>      Displays a NAPLPS file (if NAPLPS is
  4745.                                  installed).
  4746.  
  4747.             $MME <filespec>      Plays a .MME, .VOC or .CMF file
  4748.                                  through your sound card (if
  4749.                                  multimedia is turned ON).
  4750.  
  4751.  
  4752.  
  4753.          Sensing color attributes
  4754.          ------------------------
  4755.  
  4756.          1stReader support the "@x??" color code.  If "??" is used
  4757.          then 1stReader uses the current color attribute on the screen
  4758.          at the point where the text is going to be displayed.
  4759.  
  4760.  
  4761.  
  4762.          The NEWS.LST file
  4763.          -----------------
  4764.  
  4765.          After displaying the BBS news, 1stReader will look for this
  4766.          file and read it if found.  The file contains other filenames
  4767.          that should be displayed to the user.  It can also contain
  4768.          DOS commands if the entries begin with the string "DOS:".
  4769.  
  4770.          This file works well for new user setups - the sysop can even
  4771.          include programs that give the user a guided tour of their
  4772.          system automatically.
  4773.  
  4774.  
  4775.  
  4776.          The ATTACHED.LST file
  4777.          ---------------------
  4778.  
  4779.          1stReader will look for an ATTACHED.LST file inside a QWK
  4780.          mail packet and moves the attached files from the WORK area
  4781.          into the DOWNLOADS subdirectory.
  4782.  
  4783.  
  4784.  
  4785.          Save some disk space
  4786.          --------------------
  4787.  
  4788.          If you wish to save 124,504 bytes of disk space you can
  4789.          delete the 1ST.B&W file if you always have the "Color
  4790.          monitor" switch turned ON.  If you always use monochrome
  4791.          screens then you can delete 1ST.CLR instead.
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.                                     Page 72 
  4801.  
  4802.  
  4803.  
  4804.          The INSTALL module
  4805.          ------------------
  4806.  
  4807.          The 1stReader install program (INSTALL.EXE) is much more than
  4808.          just a simple installation program.  It has its own 90
  4809.          command script langague that lets you program interactive
  4810.          presentations, menus and all sorts of applications.
  4811.  
  4812.          Click on the "1stTutor" button from the opening menu to see a
  4813.          demonstration of INSTALL's capabilities.  See "INSTALL.DOC"
  4814.          for a complete list of commands supported.
  4815.  
  4816.  
  4817.  
  4818.          Creating offline help for bulletin board systems
  4819.          ------------------------------------------------
  4820.  
  4821.          1stReader can access help for a bulletin board system while
  4822.          the user is in the terminal mode.
  4823.  
  4824.          If the user presses the [F10] key from the keyboard then the
  4825.          reader searches for the file <name>.INS or <name>.HLP
  4826.          (<name> is the name of the script used to call the bulletin
  4827.          board system).  If <name>.INS is located then 1stReader
  4828.          shells to the INSTALL program to run the help file.
  4829.          Otherwise, <name>.HLP is displayed from within 1stReader.
  4830.  
  4831.          Sysops can create their own custom HELP files by copying them
  4832.          into their .BBS files.  1stReader will automatically install
  4833.          these files when reading the .BBS files.
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.                                     Page 73 
  4863.  
  4864.  
  4865.  
  4866.